Vous êtes sur la page 1sur 10

IV: Accs lAS400 en JAVA :

4.1 Organisation CLIENT SE!VE"! #e l$AS400

Ressources du systme OS400 : - FILES : fichiers physiques et logiques , ils contiennent les donnes ainsi que les vues et les jointures sur ces donnes ( ta les et autres l!ents de "#$%&''() - IFS : Integrated File Syste! , c*est un syst+!e de fichiers parall+le au prcdent , il per!et de !anipuler de fichiers organiss sous for!e de ytes dans un environne!ent de type S,ELL--.I/)Les fichiers de ce syst+!e sont organiss en ar orescence) - 0"123 : data queues 4 elles per!ettent l*change de donnes entre progra!!es ) - Spooled files : fichiers d*i!pression ) - 0567 : progra!!es 8,89#9L,8L , :56 ou autres Serveurs du systme OS400 :

- "# Server et ""7 : serveurs per!ettant l*acc+s au; fichiers physiques( en Lecture-!ise < jour-criture( et logiques ainsi que leur interrogation via des requ=tes S3L ) - #yte strea! Server : serveur per!ettant l*acc+s au; fichiers IFS(lecture-criture-!ise < jour( ) - "ist 5g! call Server : ce serveur per!et l*activation de progra!!es tournant sur l*2S&'' < partir d*un client distant ainsi que la rcupration des !essages gnrs par ce progra!!e ) - "ata3 Server : il per!et l*acc+s au; "2123 - Signon Server : il g+re les conne;ions < l*2S&''(user et !ot de passe( - .et>or? 5rint Server : il g+re les acc+s au; fichiers d*i!pression) Classes et Objets JAVA sur le CLIEN : - classe 2S&'' : elle contient en ense! le de soc?ets(une par serveur( ) Il est possi le de crer plusieurs conne;ions 2S&'' si!ultanes dans la !=!e application cliente , !ais il est prfra le pour des raisons d*efficacit de ne crer qu*une seule conne;ion < la fois ) - classe @"#8 : @2A2 "212 #2SE 89..E81IAI1B : elle per!et l*acc+s au; "# via des requ=tes S3L ) - classe "ata3ueue : reprsente des data queues ) - classe 5rogra! : reprsente un progra!!e activa le < distance ) - o jets Serveurs : o jets prdfinis reprsentant un des serveurs de l*9S&'') :e!arques : -5our les classes et o jets !entionns ci-dessus soient accessi les < partir du client , il faut installer sur celui-ci le pac?age co!)i !)as&'')access ) 8e pac?age est distri u gratuite!ent par I#7 et il s*installe indiffre!!ent sur des plates-for!es -.I/,LI.-/,7I8:9S9F1 ou 2S&'') 8es classes sont regroupes dans une archive intitule %t400.%ar ) -5our accder < ce pac?age depuis un environne!ent 7icrosoft , il faut enregistrer cette archive sur le poste client dans un rpertoire quelconque de la racine (par e;e!ple pac?I#7( et !odifier la varia le dCenvironne!ent classpath : classpath = . ;c:\packIBM\jt400.jar ; ou co!piler e;plicite!ent avec l*option classpath : java -classpath . ;c:\packIBM\jt400.jar MaClasse.java

ou encore para!trer les li rairies de son environne!ent de dveloppe!ent (@creator,@ uilder,.et eans,Eclipse,De sphere Studio etcE( pour qu*elles pointent sur l*archive jt&'')jar ) Aous trouvereF dans le ric-<- rac le pac?age jt&'')jar per!ettant lCacc+s < lC2S&'' en @2A2

4.2 L'Integrated File System(IFS) et le QSHELL


L* IFS vous per!et d*accder au syst+!e de fichiers de l*2S&'' selon une organisation en dossiers < la !ani+re des environne!ents DI."9DS ou -.I/ ) La li rairie 3SBS apparaGt alors sous la for!e d*un dossier 3SBS)LI# rattach < la racine ) 5our grer cet environne!ent on utilise soit le 3S,ELL , sorte de shell uni; per!ettant d*enter des co!!andes en !ode te;te , soit le IH .2AI6219:, per!ettant un acc+s graphique < l*ar orescence < la !ani+re de l*e;plorateur DI."9DS ) 5our activer le 3S,ELL < partir de la ligne de co!!ande 8L taper : 3S, ) 5our sortir du 3S,ELL taper IFJK ) cd / $ ls FICS IS%t&&ls Q*$S QF.leSvr.400 QIBM $

Q !"! Q'(C Q+)( Q+pe0S1s QS2

QS#S.$IB Q(C)(MM dev etc h&/e

hp javaIBM p,-l.cht/l t/p ,sr

Les principau; rpertoires de l*IFS sont : :991 ar orescence type -.I/ de l*2S&'' & ho!e rpertoires ho!e des utilisateurs (disque L : ( & 3I#7 ense! le de fichiers propres < l*2S&'' fichiers d*ent=te )h pour le langage 8 archive jt&'')jar les @"M fichiers ncessaires au fonctionne!ent du serveur >e sphere etc)) 3SBS)LI# ar orescence classique de l*9S&'' 39penSys ar orescence du syst+!e 2I/ 3951 lecteur de "A"

5our visionner vos fichiers 9S&'': cd %3SBS.LI# cd @E).LI#

ls C+)I%.)3M **S*%3.FI$% *(!Q5.*(!Q *(!Q6.*(!Q *(!(%S(.*(!!2! *(!(%S(6.*(!!2! *(F!C).FI$% %C2.FI$% %C2%85.FI$% %85.)3M %8%M)$%5.FI$% %8%M)$%5.)3M %8%M)$%5B.FI$% $ +)%2.FI$% +)%2.)3M )F"4%C$I.FI$% )3MC$I6.)3M )3MS4B.)3M )3MS4B6.)3M )3MS4B7.)3M )2C$I6.FI$% )2+*4).FI$% )2+3.FI$% QC$S2C.FI$% Q**SS2C.FI$% Q !"!S2C.FI$% 2)3*%3.FI$% 24)(42%.)3M S'*M%S.)3M SQ$!S4006.FI$% S4B5.FI$% (!B$%5.FI$% (%S(5.)3M (%S(6.)3M (%S(C!(.)3M (%S(*(!.*(!!2! (%S(MS3.)3M "4%)%2.FI$%

Les droits dans l*espace N :991 O sont grs selon un !od+le proche de -.I/ : on utilise nota!!ent les droits : LE81-:E-E8:I1-:E-E/E8-1I9. ainsi que E/8L-"E ) 8es droits sont gra les par IH .avigator ou par la co!!ande ch!od en ligne de co!!ande 3S, )

4.3 Prparation de

otre en ironnement de tra ail

Modification de votre profil utilisateur : Aous disposeF dans le rpertoire ho!e , d*un rpertoire personnel correspondant < votre userna!e (@E( ) 5our que la co!!ande 3S, vous dirige directe!ent dans ce rpertoire , vous deveF !odifier votre profil utilisateur : (autres para!+tres( !&'ertoire Initial : ()o*e(J+. 8e rpertoire correspond < votre disque L:P Cration de votre espace de travail "ans votre rpertoire personnel 3S,ELL creF un rpertoire , *esClasses - < l*aide de la co!!ande *.#ir . Prparation de votre .profile 1oujours en !ode 8L : E/T0 1042 Strea* 0ile : ()o*e(J+.(.'ro3ile

Aous accdeF alors < un diteur type SE- , < l*aide duquel vous introduiseF : e!port "s #L$SSP$%H&.'()ome(*+(mes#lasses'()ome(,lasses-a a'()ome(,lasse s-a a(*t4...*ar e,)o /0ien en1e dans l'en ironnement QSHELL de l'I2 / Le positionne!ent de la varia le 8L2SS521, vous per!ettra d*activer les diffrentes classes @2A2 ncessaires < votre application < partir de l*environne!ent 3S, ) Aous deveF gale!ent positionner cette varia le < partir de l*environne!ent 8L ) Positionnement de CLASSPATH en mode CL : En !ode 8L :
$33E455$6 E455$6(#L$SSP$%H) 5$L7E('&.'()ome(*+(mes#lasses'()ome(,lasses-a a'()ome(,lasses-a a(*t4...*ar ')

8ette varia le d*environne!ent est lie au @9# interactif dans lequel elle est positionne , elle ne su siste donc pas d*une session < l*autre ) Il est donc conseill d*intgrer la co!!ande cidessus dans un petit progra!!e 8L que l*on appellera lors de l*entre en session grQce < l*option N progra!!e initial < appeler O du profil utilisateur ) )3M !**%'""!2 C$!SS)!(9 :.:/h&/e/j0005//esClasses; /h&/e/classes ava:/h&/e/classes ava/jt400.jar< %'*)3M

4.4 #ration de so1r,es -$5$


5our crer des sources java sur l*2S&'' on peut : -encoder le progra!!e depuis une plate-for!e LI.-/ ou DI."9DS puis le transfrer par F15 (il faut se connecter sur son ho!e directory( -ide! !ais utiliser le copier-coller pour transfrer le fichier < l*aide de IH .2AI6219: ) -encoder le progra!!e < l*aide de l*utilitaire E"1F sur l*2S&'' ) -para!trer son environne!ent de dveloppe!ent afin qu*il dpose ses sources dans le rpertoire L : P!es8lasses

4.2#ompilation des so1r,es *a a et e!,1tion


RS( en !ode 3S, *a a, et,+ on peut alors lancer l*application par la co!!ande *a a et,+ $S( opti!isation

2fin d*acclrer l*e;cution des applications @2A2 ,l*environne!ent 2S&'' offre la possi ilit de crer des progra!!es opti!iss ass sur les classes java o tenues par co!pilation classique ) Il e;iste quatre niveau; d*opti!isation : 0I.1E:5:E1 code R' $' J' &' pas d*opti!isation opti!isation fai le opti!isation !oyenne opti!isation forte opti!isation totale appel < la @A7 pour interprter le full de ugga le de uggage partiel de uggage partiel de uggage i!possi le

Il convient de !ettre au point les classes en !ode 0I.1E:5:E1 , puis seule!ent de les opti!iser ) 5our crer un progra!!e opti!is : En !ode 8L #6%-5$P89 #LSF(:()ome(*+(SQL$S4..;.#L$SS<)

=P%I9I>E(4.)

:e!arques : -La co!pilation et l*opti!isation peuvent =tre gale!ent ralises < partir du !enu conte;tuel de l*IH .avigator ) -La co!pilation peut gale!ent =tre lance < partir de votre environne!ent de dveloppe!ent 7icrosoft , il faut alors para!trer celui-ci afin qu*il utilise une @"MR)& afin que les classes gnres soient co!pati les avec la @"M de l*2S&'') JS(E;cution en !ode 8L 674-5$ #L$SS(SQL$S4..;)
-$5$

:e!arque : "estruction d*un pg! java opti!is :


3L%-5$P89 #LSF(:)ome(*+(SQL$S4..;.,lass<)

Le )class original n*est pas effac )

4.4 Lance*ent #$5ne a''lication JAVA en *o#e 6atc)

S09-=0 #93(-$5$ #L$SS(SQL$S4..;)) #P?E455$6(@?ES) L*option 85BE.AA2: per!et de co!!uniquer au atch les varia les d*environne!ent ncessaires < l*e;cution de la co!!ande @2A2 ( varia le 8L2SS521,( ) Les sorties sur le priphrique standard (Syste!)out)println( sont envoyes dans le spoole d*i!pression )

4.A #omm1ni,ation simple a e, les 3ataQ1e1es


Les "ata3ueues sont o jets per!ettant des canau; de co!!unication entre progra!!es de !=!e type ou de types diffrents (@2A2 avec 8L par e;e!ple( ) 567 2 : !sg& T!sgJ T!sg$ T!sgRT : 567 # "123 9n distingue les "123 FIF9 : rception de !sgR puis !sg$ ,J,& , les "123 LIF9 : rception de !sg& puis !sg J,$,R , et les MEBE" "123 qui per!ettent dCaccder < un !essage donn suivant une cl ) Sous 9S&'' , pour crer une file de donnes : 8:1"123 IF&K IndiqueF vos choi;, puis appuyeF sur E.1:EE) File dCattente de donnes ) ) ) #i lioth+que ) ) ) ) ) ) ) ) ) 1ype ) ) ) ) ) ) ) ) ) ) ) ) ) ) Longueur !a;i!ale de poste ) ) Forcer sur !!oire secondaire ) Squence ) ) ) ) ) ) ) ) ) ) ) ) E7ISSI9. .o! 08-:LI# .o!, 08-:LI# 0S1" 0S1", 0""7 R'''' R-U&HR$ 0.9 0.9, 0BES 0FIF9 0FIF9, 0LIF9, 0MEBE"

.ous crons ainsi dans la li rairie @'''R , deu; "2123-E-ES :E7ISSI9. et :E8E51I9. ) @'''$ @'''R .ous crons dans les espaces @'''R et @'''$ deu; progra!!es java , respective!ent rception et !ission )

!sg E7ISSI9.)8L2SS ac?

:E8E51I9.)"213 :E8E51I9.)8L2S E7ISSI9.)"213 S

5:96:277E "*E7ISSI9.
./p&rt c&/..-/.as400.access.=; ./p&rt clav.er.=; p,-l.c class %/.ss.&0 > pr.vate stat.c !S400 as400; pr.vate stat.c *ataQ,e,e d?I0p,t; pr.vate stat.c *ataQ,e,e d?+,tp,t; p,-l.c stat.c v&.d /a.0@Str.0A arAsBCD > tr1 > as400 = 0eE !S400@Fl&calh&stFGF=C422%'(FGF=C422%'(FD; //&, -.e0 Fas400..la0FGF 0006FGF/&tHdeHpasseF d?+,tp,t = 0eE c&/..-/.as400.access.*ataQ,e,e@as400GF/QS#S.$IB/ 0005.$IB/2%C%)(I+'.*(!QFD; d?I0p,t = 0eE c&/..-/.as400.access.*ataQ,e,e@as400GF/QS#S.$IB/ 0005.$IB/%MISSI+'.*(!QFD; Str.0A /sA; d&> S1ste/.&,t.pr.0t@F/essaAe @=S(+) p&,r st&pperD :FD; /sA = $ect,re.l.reStr.0A@D; d?+,tp,t.Er.te@/sAD; *ataQ,e,e%0tr1 de = d?I0p,t.read@I0D; //te/ps /aJ d<atte0te Str.0A ack = de.AetStr.0A@D;//rKc,pKrat.&0 de l:ac,sK de rKcept.&0 .L@ack.e?,als@/sADD S1ste/.&,t.pr.0tl0@F/essaAe -.e0 e0v&1KFD; MEh.le@N/sA.e?,als@F=S(+)FDD; as400.d.sc&00ect!llServ.ces@D; S1ste/.&,t.pr.0tl0@FdKc&00eJ.&0 re,ss.eFD; M catch @%Jcept.&0 eD >S1ste/.&,t.pr.0tl0@Ferre,r =F;eD; M M M

5:96:277E "E :E8E51I9.


./p&rt c&/..-/.as400.access.=; p,-l.c class 2ecept.&0 > pr.vate stat.c !S400 as400; pr.vate stat.c *ataQ,e,e d?I0p,t; pr.vate stat.c *ataQ,e,e d?+,tp,t; p,-l.c stat.c v&.d /a.0@Str.0A arAsBCD > tr1 > as400 = 0eE !S400@Fl&calh&stFGF=C422%'(FGF=C422%'(FD;//&, -.e0 Fas400..la0FGF 0005FGF/&tHdeHpasseF d?I0p,t = 0eE c&/..-/.as400.access.*ataQ,e,e@as400GF/QS#S.$IB/ 0005.$IB/2%C%)(I+'.*(!QFD; d?+,tp,t = 0eE c&/..-/.as400.access.*ataQ,e,e@as400GF/QS#S.$IB/ 0005.$IB/%MISSI+'.*(!QFD; Str.0A /sA; d?I0p,t.clear@D; d?+,tp,t.clear@D; ///.se O -la0c des de,J data?,e,es d&> *ataQ,e,e%0tr1 de = d?I0p,t.read@ -5D; //te/ps d<atte0te 0KAat.L ==P atte0te .0L.0.e /sA = de.AetStr.0A@D; //rKc,pKrat.&0 d, Str.0A reQ, S1ste/.&,t.pr.0tl0@Frecept.&0 de : F ; /sAD; d?+,tp,t.Er.te@/sAD; MEh.le@N/sA.e?,als@F=S(+)FDD; as400.d.sc&00ect!llServ.ces@D; S1ste/.&,t.pr.0tl0@FdKc&00J.&0 re,ss.eFD; M catch @%Jcept.&0 eD >S1ste/.&,t.pr.0tl0@Ferre,r =F;eD; M M M

:e!arque : Les deu; progra!!es ci-dessus peuvent tr+s ien tourner sur une !achine locale , il suffit d*indiquer le no! du serveur (as&''i)lan ou infor!atique)hep! c) e( plutVt que N localhost O et d*utiliser un userna!e et un pass>ord e;plicite )

Vous aimerez peut-être aussi