|
|
|
|
|
| | | |
WebLogic JDBC T3 ú»”í¸ƒhCoij̎g
߂ł́Aȉ̓eׂŔɂȁE WebLogic JDBC T3 hCoɂĐ־܁E
T3 hCóAWebLogic Server o[W 6.0 ɂȁEBBEA ł́AT3 hCóE RMI hCogpú»¹úӂ邱ƂúԊ߂Ă܁EuWebLogic Server 4.5 5.1 AvP[Ṽo[W 6.x ւ̈ڍsvQ ú»¸úہE
̃}jAɐVeׂ͒ljB ܂AWebLogic Server o[W 5.1 A灁Eȉ̕\Ɏ_ύX ܁E
|
gp@鋔\ |
]̋@\ |
־ |
|---|---|---|
|
RMI hCo |
T3 hCo |
ł邩AT3 聃hCóE RMI hCogpú»¹úӁERMI 遃hCȍڍׂɂẮAwWebLogic JDBC vO~O KChx́uWebLogic RMI hCo̎gv QƁB |
|
myDriver.connect() |
DriverManager.getConnection() |
|
|
Administration Console |
weblogic.properties t@C |
𐂷 Administration Console ͂gpú»¹úӁE遁E Aweblogic.properties t@C͎gp ȁEBڍׂɂẮAwǗ҃KChx́uJDBC ڑ̊ǗvQ B |
|
weblogic.properties t@C |
JDBC ú»¸úۑXg\ ́AIC wv́uJDBCڑv[vQ B |
JDBC ú»¸úۊTv
JavaSoft JDBC ̎dlɁEWebLogic ̑w JDBC ŁEWebLogic JDBC gp AAvP[V WebLogic ©f烁[^x[XɃANZXŁEɂȁEBWebLogic ́AWebLogic JDBC g f[^x[X ANZXn ú»¸ú邳܂܂ȃT[rX wT[oiT|ú»Œí³�[gĂ܁EWebLogic JDBC g ú»¸ú\zꂽ Java NCAgɂ́ANCAgTCh f[^x[X CuKv B
WebLogic JDBC AWebLogic Server ƃf[^x[X T[oƂ̊ԁEJDBC ŃhCoKvŁEWebLogic 2 whCoAWebLogic jDriver for Oracle gpú»¹úӂł܁E܁EODBC ANZXp JDBC ̃hCoȂǁÁEJDBC ̃hCogpú»¹úӂ邱ƁE܁EWebLogic Server DBMS ƂƂ̊ԂŁEWebLogic JDBC hCogpú»¹úӁEA WebLogic JDBC 2 whCo 2 wŏ\ɓ삷邱ƂmFú»©úЂāE WebLogic JDBC ̃fvCT|[g B
WebLogic JDBC ̃A[LeN`
WebLogic JDBC ̃A[LeN`́AWebLogic ̑ẅꕔƂāEWebLogic ̂̃t[[NɁEutɁEĒ`苁EBWebLogic JDBC Server ́AWebLogic JDBC AvP[VƂ̃ANZX [g DBMS Ƃ̒ԂɈʒu܁EWebLogic JDBC AvP[V WebLogic Server ͂̃NCAgŁEWebLogic Server 聁EDBMS ͂̃NCAgƂȁEB̊WɁE2 ͂̑ʁE聂ǁEú»‹íµ‚āEv B
WebLogic Server ƁEWebLogic JDBC ̃NCAgԂ̊WBe WebLogic JDBC NCAǵAWebLogic Ǝ̃ReLXgA܂胏[NXy[Xú»¹úفEĂ܁EWebLogic Server ƃNCAgƂ̊Ԃ̃vgŔAdꂽo ̔EŁET3Client WebLogic Server ƂƂ̐ڑ́ub`\PbgڑvŁA1 ETCP ̃\PbgځEѽ́E] ŁEՔIɂ́AWebLogic Server ͌I擂ȃpPbgx[X̃L[ vgRgpú»¹úӂ܁ET3Client WebLogic Server ƂƂ̊W̏ڍׂɂẮAwJ҃KChxij́uWebLogic NCAg AvP[V́Ev QƂāE
WebLogic Server DBMS ƊԂ̊WBWebLogic Server ́AT3Client ɁEBāAJDBC hCoƃx_ Cugpú»¹úӁE1 Ă܂͕̃f[^x[XƂ̐ځEú»�Eµ�EWebLogic Server ́AJDBC hCooRú»±úӂă[g DBMS ƁA JDBC ̃hCoɁEČ܁E遃x_ŗLCu܁EODBC ͂̂ꂩƒʐM܁EWebLogic Server DBMS ƊԂ̐ڑu2 wú»�E±�ڑvƂĂ܁EWebLogic Server ͕̃f[^x[XɐځE1 ăNCAg NGXgɉ邱ƁE1 B̃f[^x[Xɐڑĕ̃NCAg̃NGXgɉ邱ƁE܁E
܁EWebLogic JDBC NCAgƃNCAgANZXf郁[^x[XƁEû²“IȊW̊ԂɁAWebLogic Server Ƃ B̊ẂAJDBC ڑIuWFNgɁEĒ`苁EBJDBC ڑ̍쐬 gp @͂EBWebLogic JDBC NCAǵAR vpeB 𐂵AKEJDBC ȃhCoú»ºúەʂāAJDBC ځEú»€úفEJDBC ڑIuWFNǵAWebLogic Server T3Client ̃[NXy[XɃLbViۑjł܁EJDBC ڑ́AWebLogic Server ̋NɁA1 ܂͕̃NCAggp\Ȑڑv[ƂāEł܁E
WebLogic Server JDBC ̓AvP[Vgú»©úΣ邳܂܂ȋ@\ ú»�E´‚܁EWebLogic JDBC AvP[V̓ZbV̊Jn WebLogic Server ɂɐڑAZbV̏IɐځEKú»¥úїv BWebLogic Server DBMS ƊԂ̐ڑ͓ߓIɁEB
wRtBO[Vł̃T[hp[eB JDBC 2.0 hCo̎g
: WebLogic Server o[W 6.0 ɁEJDK 1.3 ́EvŁE
WebLogic JDBC WebLogic Server Ƃł́AT[hp[eB JDBC 2.0 ̃hCogpú»¹úӂ邱ƁE܁ȄꍇAWebLogic Server ܁EWebLogic JDBC ́EJava 2iJDK 1.2.xjú»�E±ŠŁEsK镗v B݁AJDBC 2.0 hCogpú»¹úӁEɂ́AJava 2 ̎gpɊւ鐧lú»µúӶK镗v B ́EɂẮAWebLogic ̃vbgtH[̃y[WŐ־Ă܁E
wRtBO[VŃT[hp[eB JDBC 2.0 ̃hCogpú»¹úӁEAhCoĂяo 肷f郁[^́AWebLogic whCooRú»±úӂēߓIɓn B̂߁ÃhCoŎgp\ȂׂĂ̋@\ WebLogic ̑wRtBO[VŎgpŁEɂȁEB
JDBC 2.0 hCo𑽑wRtBO[VŎgp ́AR[h ú»€úԂ悤ɕύX܁E
weblogic.t3.cacheRows=0
WebLogic JDBC API
API t@X
Package java.sql
Package java.math
Package weblogic.jdbc.common
WebLogic ́AR WebLogic JDBC g@\iwŁEWebLogic jDriver JDBC ̊g̈ꕔT|[gj JDBC g ú»�E²�E ̊g@\ɂāEAPÍiJavadocjhLgւ̃NɂẮAAPI t@XQ ú»¸úہE
WebLogic JDBC IuWFNgƂ̃NX
: WebLogic Server Ӄo[W 6.0 ł́AJDBC 2.0 ܁E
JDBC ́EɂẮÅJ҃KChł͐־Ă܁EABEA ̂̑̃IC t@Xƈꏏ JavaSoft ɁEclassdocśiAPI t@X }jAj ú»�E²‚܁EJavaSoft ̃TCg AJDBC NX API ̃}jAú»ºúRɃ_E[hł܁Ẽ}jAŐ־ WebLogic JDBC L̃IuWFNg NX́AWebLogic ̃t[[Ngpú»¹úӂ܁E
WebLogic JDBC AvP[VɃC|[gN郃X͈ȉ̂ƁEB
̑̃NX
weblogic.common.T3Client
weblogic.common.T3User
weblogic.common.T3Exception
weblogic.common.* pbP[Wɂ́AT3Client Cú»Œí³“X^X T3Client N郃XƁAWebLogic JDBC WebLogic ̃t[[Nŋ@\邽߂Ɏg T3 ŗL̃IuWFNg Ă܁ET3User NX±̃pbP[WɁEĂ܁ET3User IuWFNǵA[U pX[h ZLú»Œí³ƒA WebLogic ServerA܁E胃NZX邽߂ɔFEvȃT[oɓn߂Ɏg ܁E
weblogic.jdbc.t3.Connection
java.util.Properties
JDK 1.3 ւ̃AbvO[h
WebLogic [X 3.0 ̏ꍇAWebLogic JDBC gpú»¹úӁÉAJava Developers Kit ̃o[W 1.1 ɃAbvO[hK镗v BWebLogic ͌݁AJDK 1.0.2 T|ú»Œí³�[gĂ܁E1.0.2 JVM WebLogic Server sɂẮA݂̓T|[gĂ܁E A1.0.2 EWebLogic A郃vP[V̋N܂̓RpCɂāEL݂̓T|[gĂ܁E
JDK o[W 1.0.2 1.1 ᣈí²�dvȕύX_́AJDBC NXijava.sql.*j JDK 1.1 Ɋ܂܂ꂽƂŁEWebLogic ĂꎞI JDBC NX Zbgixjava.sql.* weblogic.db.xjdbc.*jȂƁEJDK 1.1 Bgpú»¹úӂŁEɂȁEB
AbvO[h@
xjava.sql.* ⨁E weblogic.db.xjdbc.* Q Cû³¼úσ|[g java.sql.* ú»Ší¸�E weblogic.db.jdbc.* ɕύX܁EɁE܁E
import java.sql.*;
import weblogic.db.jdbc.*;
ځE: JDK 1.1 ׂgú»¸úΤOɁAR[h ׂĂ̎QƁExjava.sql.* ú»Ší¹�Ejava.sql.* ύX܂idbKona gú»¸úΤꍁE�Aweblogic.db.xjdbc.* ւ̎QƁEweblogic.db.jdbc.* ύXK镗v jB C|[g̕ύX BúۼúExjava.sql.* weblogic.db.xjdbc.* NXւ̖IȎQƂ̃R[h`ÃFbNK镗v B
̐߂ɂ́E̗Ⴊ B
weblogic.jdbc.t3.Driver ú»€úXAWebLogic JDBC URLւ̎QƁEjdbc:weblogic:t3 ú»€úX܁E
ځE: JDK 1.1 ׂւ̕ύXł́Eú»€ú̐VK̗p BV NXAweblogic.jdbc.t3.Driver weblogic.jdbc.t3client.Driver ͂ƓŁẼNX́Axjava.sql.* ́E java.sql.* gpú»¹úӂ܁EWebLogic JDBC hCo URL ̂ւ̎QƁEjdbc:weblogic:t3 ú»€úXAWebLogic JDBC hCõNX weblogic.jdbc.t3.Driver ú»€úXK镗v B
WebLogic JDBC ́E
ł́AWebLogic JDBC AvP[V\zú»µúE ú»�E°�ESR[h g āEPȃAvP[V́AWebLogic Server Oracle ú»€úՃf[^x[XɐڑāAAꘂ̃R[h̑}AXVAB ú«�EsAXgAh vV[W ú»¸úE gpú»´úȆ́EāABɁAXgAh vV[W ̐߂ŁASybase f[^x[XŎgR[hƓl̃R[hú»¼úӁEú»�E²‚Đ־Ă܁E
ŁE5 ̂̎菇́AAvP[VɁEԂŐ־ A聏ɔԍt Ă܁E
WebLogic JDBC Oracle Ńf[^x[Xgú»¸úΤ߂̊SR[h Ã}jA̍ŁELځE܁E ú»�E²‚־ŎgpĂR郁[h ܁E܁E
WebLogic Server DBMS ƂƂ̐ځEWebLogic jDriver 2 ɑwhCogpú»¹úӂāEAgpe 2 銑whCówJ҃KChxQΏƂāE
菁E1. pbP[W̃C|[g
ȉ́E WebLogic JDBC Avú»Œí³ƒP[VɃC|[g܁E
Properties IuWFNg DBMS ú»€úقɃANZX邽߂̃p[^ û»ˆí²�ÉAjava.util.Properties Cú»Œí³“|[g܁Eweblogic.common.* pbP[Wɂ́AWebLogic t[[N @\邷ׂẴAvP[VɁEċL NX Ă܁E ̃NX̏ڍׂɂẮAWebLogic JDBC ƃNXQ ú»¸úہE
\bh̍ŏɐڑIuWFNg ú»�E°�E try ubN finally ƃubNŎgp B
܁E߁ET3Client ݁Estrong>gpú»¹úӂȂꍇ́Atry ubN̑O T3Client ɃIuWFNg ú»�E°�E[X 2.3.2 ŒljBꂽ߁ET3Client @\́Ajava.util.Properties IuWFNgɕʂ̃vpeB ú»�E²‚邱ƂŐݒ肳 B߁ET3Client ݂͎Iɍ\z ڑAꁑ́E߂ɖI T3Client ȃIuWFNgKvƂȁEӁEWebLogic JDBC ̃NXŎgpł܁E
菁E2. T3Client ̍쐬
I܂͖߁ET3Client ݂̎g
: ݁A[NXy[X́AWebLogic Server ̈ꕔł́EB
ñ��EɁAe WebLogic JDBC AvP[V́AT3Client IuWFNg̍쐬n玂܁Ei[X 2.3.2 ȍ~Ŏgp\Ȗ߁ET3Client @\gpú»¹úӁEAT3Client Iɍ쐬 ꍁEjBT3Client ́AWebLogic Server ̃NCAgp̃NCAg ReLXgƂȁE聃NCAgƂ̃NGXg ú»€úԂɎʂ܁E܁ET3Client ́AWebLogic Server Ǝ̃[NXy[Xú»¼ú֗LAŌpI WebLogic Server ȃZbVɍ킹 T3Client Ďg \ú»´úαƂł܁EWebLogic JDBC AvP[VɑẮAT3Client JDBC ͐ڑ̃RXgN^ɓn vpeB 1 ̂ł B
T3Client NXAweblogic.common.T3Client ɂ́AWebLogic JDBC ŎgpR郃XgN^ ̃\bh܂܁E܁EVK T3Client ́Eú»´úαƁEBłɍ쐬ꂽ[NXy[X \ T3client ú»€úقO ú»�í±–߂ƁE܁ENCAg̃[NXy[Xɂ́AAꘂ̃LbV JDBC ڑ܂܁E܁E ̐ڑ́AQꌁEWebLogic JDBC ̃NCAggpŁE WebLogic Server ɂɊi[ B
ׂāET3Client ̃RXgN^ɂ́AȂƁE1 ́EWebLogic Server 䁁EURL ́EiIvVŃ|[g 80 ȊȌꍇjWebLogic Server T3Client ڑNGXgú»ŒíºƒX TCP |郁[gKvŁEURL ͎̃tH[}bgŕ\ B
accessProtocol://WebLogicServerURL:port
accessProtocol ́AuT3Client AvP[V̍쐬vɋLځEv郃gR̂ꂩŁEt3i\AdMAA⻂đo ̐ڑɁEW T3Client ANZXjAt3siSSL ŔFEsú»´úΤ T3Client ANZXjAhttpigXt@CAEH[p HTTP ̃glOɁE T3Client ANZXjȂǂŁE
WebLogicServerURL ́AY}郃VœKȔCӂ̕@ ߂܁Eport ́AWebLogic Server T3Client ̃OC NGXgú»ŒíºƒXāE郁[gŁE
T3Client \zú»µúEú»ºú҂܁E
T3Client t3 = null;
try {
t3 = new T3Client("t3://bigbox:7001");
e T3Client ́AWebLogic Server [NXy[Xú»¹úفE̒ɃReLXgi[ú»©úЁE ėp܁ET3Client ̍쐬Ƀ[NXy[XɖOt邱ƁE܁EOtĂƁA[NXy[X̍ėpȒPɂȁEB܂́AT3Client ̐ځEftHg̃[NXy[X ú»¸úαƁE܁E[NXy[X͓rWlX AvP[V ú»´úν߂֗̕ȃfŁE[NXy[X̏ڍׂɂẮAuWebLogic Workspaces ̎gv QƂāE
WebLogic JDBC NCAgpƂāAO̕t[NXy[X́ÉAf[^x[XiconnectionIDjւ̃LbV JDBC ڑւ̃ANZXłȁEn[hA\tgA AChɁEڑúؗpɐݒ肳ꂽl ܁E܁E܁ET3Client ́AString L[ŎʁECӂ̃IuWFNgú»Œí¿�[NXy[XɊi[ĂāA oƁE܁E
ėp\ȃ[NXy[X @ 1 ú»µúт́A[NXy[XɖOt邱ƂŁÊ߂ɂ́AT3Client \zú»µúEɁA String ĖRú»Œí³“XgN^ɒ܁EɁE܁E
t3 = new T3Client("t3://bigbox:7001", "mike");
ėp\ȃ[NXy[X ú»µúѕ@ AT3Client ̃ftHg̃[NXy[X String ID ́Eú»�Eµ‚ƂŁEėp ́Egpł܁E[NXy[X ID ̂́AT3Client WebLogic Server ɐځEgp\ɂȁEBɁE܁E
t3 = new T3Client("t3://bigbox:7001");
t3.connect();
String wsid = t3.services.workspace().getWorkspace().getID();
ȉ̂悤ɁA[NXy[X IDi܁ET3Client ̖͂Ojgpú»¹úӂāAV T3Client ú»€úق܁E
t3.disconnect();
t3 = null;
// uwsidvgpú»¹úӂčĐځEbr> System.out.println("Reconnecting client " + wsid);
t3 = new T3Client("t3://bigbox:7001", wsid);
t3.connect();
̃[NXy[X ID ƁEvȁE WebLogic Server ݂ɂȁET3Client ꂽꍇAV[NXy[X ú»´úƂ݂ȁEꁒEVOt B
WebLogic Server ł́EIú»¼úΦ Afinally ubN disconnect() Ń\bh ú»€ú؏oāANCAg̃\[Xj Kû˩úїv i̍ŁE菇QƁjB
T3Client IuWFNg AT3Client ú»¸úΐڑú̃^CAEg 𐂂BWebLogic ́An[hڑúiWebLogic Server ƃNCAgƂ̃\Pbg j \tgú»½úiT3Client disconnect() \bh ú»€ú؏oƂɁEĐڑúv𗋁j̃^CAEgT|ú»Œí³�[g܁Ê悤ɁA ̃^CAEg i𐁕PʁjāAWebLogic Server ŁET3Client ̃IuWFNg̃N[Abvx ûÈí²±Ƃł܁E
t3.setSoftDisconnectTimeoutMins(5);
n[hڑúEÃtgڑúECftHgŁEWebLogic Server ́ET3Client ̃\[XN[Abv܁E ̒l T3Client.DISCONNECT_TIMEOUT_NEVER ú»€úΒ肵āA^CAEgEɂ邱ƁE܁E
ڑú^CAEg 𐂷 AWebLogic Server R ̐ڑú̌AT3Client ぁ@̃\[XiBɃ[NXy[XjNú»Œí³Š[Abvijj ܂ł̎Ԃw ú»¹ú܁ET3Client ̃\tgڑú̃^CAEg DISCONNECT_TIMEOUT_NEVER ú»€úΒ肷 A{û²“IɁAT3Client WebLogic Server ͂삵Ă邩L藁EȁEB
WebLogic Server Z胃bVmú»©úӧAWebLogic Server 灁E DBMS ú»€úՂɐڑv郃ZXJnú»¨úڂł܁Eڑp[^ 𐂷 ́AJDBC Properties IuWFNggpú»¹úӂ܁E
Properties IuWFNgɂ́AJDBC ڑɕKvȂׂẮE܂܁E܁Eڑ̃Zbg T3Client ͂̃[NXy[XɃLbVł܁ET3Client ́AgetConnection() \bh s ú»¸úALbVڑ̂ꂩ connection ID gú»€úėvł܁EConnection ID ́AProperty 𐂷邾ō쐬ł܁Ew肵 connection ID Aꂪgp BłȂꍇ́AV connection ID �E¬AꁁEꏁEJDBC ɐڑׂ̂āEProperty ́EہEBLbVځEp ú»´úٕKvȁE connection ID ͂ŁEconnection ID AProperties IuWFNǵEB
Properties ɂ́AWebLogic JDBC NCAgf[^x[X WebLogic Server ɃANZX @ɂĂ̏ڍׂ܂܁E܁EProperties IuWFNg\z ƁAvpeBƁEString ̒lƁE2 ́Ew肷邱ƂɁEāAput() \bhŔCӂ̐̃vpeB 𐂂B́Eݒ肵Ăv郃peB́AWebLogic JDBC hCoŎgp Bgp JDBC h郃CoɕKvȂǂ̂悤ȃvpeBŁE߂邱Ƃł܁E
ł́A2 EProperties ̃IuWFNggpú»¹úӂ܁E1 ځEdbprops ͂ŁAWebLogic Server DBMS ƂƂ̊Ԃ̐ڑ̃p[^ 𐂵܁E 2 wڑŁE
2 ځEProperties ̃IuWFNg t3props ͂ŁAWebLogic JDBC NCAg DBMS ƂƂ̊ԁEWebLogic Server ɁEڑ̃p[^ 𐂵܁E wڑƌĂт܁EWebLogic Server-DBMS Properties IuWFNgidbpropsj́Aꎩ́EWebLogic JDBCClient-WebLogic Server-DBMS Properties IuWFNgit3propsjɂȁEJDBC 聐ڑRXgN^́EĎgp B
WebLogic Server DBMS Ƃ̐ڑi2 wڑjA WebLogic JDBCClient DBMS Ƃ̊ԁEWebLogic Server ɁEڑiwڑĵ߂̃p[^ 𐂷 ́Ajava.util.Properties IuWFNggpú»¹úӂ܁EProperties IuWFNǵAgetConnection() \bh́EĎgpł܁E
úž© 邽߂ɁAProperties A2 wú»�E±�ڑpƑwڑp 2 ̂̃XgɕāEB
2 wڑpɐݒ肷v郃peB
IvVŐ݁E 2 w鑐ڑp̃vpeB Bȉ̃vpeB́E1 ̂ŁE
ResultSet.next() ú»€úٌĂяoƁEPsꍁEoú»¸úۂ̂ł͂ȁEs̔z A Ɋi[܁E ~Anext() ú»€ú؏oƁAɊi[ꂽsǂݏo B́E sȂȁEőAsȂȁEAnext() ւ̌Ăяo̓f[^x[Xɖ߁EB
weblogic.t3.cacheRows Ƃʂ̃vpeB B AWebLogic Server ŃR[hobú»Œí³ƒt@O邽߂̑wLbṼTCYÊŁE ̃vpeBɂ͊֘A AɎgp Ƃ B
wڑpɐݒ肷v郃peB
߁ET3Client ݂gpú»¹úӁEÃvpeB͐ݒ肵܁E/strong>B ᤁE²�AvpeB weblogic.t3.serverURL 𐂵܁E Aߍ݃NCAgځEWebLogic Server w肵܁E
Class.forName().newInstance() Ń\bh́EĎgp B́Egph郃CóAWebLogic jDriver for Oracle lCeBu JDBC hCoŁEhCõNX͑啶/ ú»€úׂĎʁEBׂẴNXƓlÃNX̓hbg\LŁE
DriverManager.getConnection() ú»�E²ƒ\bh̍ŏ́EĎgp B́ÉAWebLogic jDriver for Oracle g Oracle ú»¸úf[^x[XuDEMOvɃANZXĂ܁ET[o ú»�E²�EꍇAVXe͊ϐiOracle ̏ꍇ ORACLE_SID́jT𒂵܁EURL ͑啶/ ú»€úׂĎʂ܁EURL R B
WebLogic 2 wlCeBu hCo URL ͈̂ȉ̂ƁEB
getConnection() \bh́E connection ID Ăw Ajava.util.Properties IuWFNgû´ˆí²Žw肵̃vpeB́Aconnection ID WebLogic Server ɑ݂Ȃꍇɂgp B
NCAg ResultSet.next() ú»€úٌĂяoƁEWebLogic ́ADBMS s獂̃ob` A 1 ú»€úՉŃNCAg JVM ɓ]܁E ~AResultSet.next() ú»€ú؏oƁAWebLogic ú»€ú؏oƂȁENCAg̃ɂs鍁Eo BNCAg̃ɃLbV s鍂ȂȂƁAResultSet.next() ɑ鎟̌Ăяo WebLogic ͂ɓnAWebLogic ꁂ͍Ăэs̃ob` ú»€úڃNCAg̃LbVɁEB
vpeB weblogic.t3.cacheRows gpú»¹úӁEAob`Ɏ擾s鍁E 𐂂B̃vpeB̃ftHgl͍ŁE10 sŁE[X 2.5 25 ōsɑB BTCY ́ÃvpeBw ú»¹úELbVItú»Œí³‚ɁÉAvpeB̒l 0 ú»€úΒ肵܁E0 ɐݒ肷 Anext() ܁EgetXXX() ̓\bh ú»€ú؏oтɁAT3Client ƃf[^x[XƂ̊ԂŕK 1 ܁E
AvP[V DBMS Ƃ̑gݍ킹ɁEẮAWebLogic AKAR[hNú»Œí³‰CAgɒړnȁEȁEꍁE BƂAAvP[VJ[\ú»¼úԗāEA擾O̍sf[^́ANCAg̃J[\ʒu DBMS ƃhCõJ[\ʒúEú»€úڌ덷܁EAvP[V̏ꍇAweblogic.t3.cacheRows vpeB[ú»Œí³�iu0vjɐݒ肷 AKvȁEł܁E
NǦʁEResultSet oOú»ˆí²�AڑIuWFNgł̃vpeBú»ŒíºƒZbg邱ƂɁEāAcacheRows vpeBNGú»Œí³ƒ̂тɒł܁Eweblogic.jdbc.t3.Connection.cacheRows() ɁEWebLogic JDBC g@\g ú»¸úA݂̒l AVlú»€úڐݒ肵܁Eʂ́AZbg ܂Ō݁EcacheRow ̐݁EăLbV B
WebLogic jDriver for Oracle gpú»¹úӁEA2 wvpeB weblogic.oci.cacheRows ú»€úՁAOracle ̔ztFb`@\ɃANZXł܂i̋@\̏ڍׂɂẮAWebLogic jDriver for Oracle p̊J҃KChQ ú»¸úۂjB̃vpeB weblogic.t3.cacheRows ͂Ɉˑ܂A҂Ԃƃf[^x[Xׂ̕E邽߂ɁAvpeB ú»€úԎgpĂ©܂܁E
ƂAڋq ɃANZX邽߂̐ڑɁE 2 ̃vpeB ú»�E²�ÉÂ悤ɂ܁E
Properties t3props = new Properties();
t3props.put("weblogic.t3.name", "CustInfo");
t3props.put("weblogic.t3.description",
"customer info connection");
́E 𐂷 AWebLogic Console ̕\LvŎg₷ ƂȁEB
L㋈ȊOɁA¤ 1 vpeB B̃vpeB͐ڑv[ JDBC ɃANZXv郃peBȂ̂ŁÃvpeB gΗppx́EB̃vpeB 𐂵ꍇAڑ̂̑̑͐ڑv[�E¬ꂽƂɐݒ肳 ̂ŁAݒ肷K镗v B̃vpeB́AʏAú�‘̃vpeBȂƂɎgp܁E
weblogic.properties t@C̃GgɁEājڑv[�E¬ K镗v B
p[^́A2 E/strong>̐ڑɑĐݒ肷K镗v邱Ƃ𗝉ퟋúтĂāE
́ÉA܁EOracle p WebLogic lCeBu JDBC hCoAWebLogic jDriver for Oracle g ú»¸úAf[^x[X T[oiuDEMOvj Oracle f[^x[XiumydbvjɐځE2 w鑐ڑvpeB 𐂵܁E
Properties dbprops = new Properties();
dbprops.put("user", "sa");
dbprops.put("password", "");
dbprops.put("server", "DEMO");
dbprops.put("database", "mydb");
ɁAwvpeB 𐂵܁EwvpeB́E1 ́A2 w Properties IuWFNgŁEwvoC_̈ꕔƁEconnection ID Ăw ú»¹úE connection ID ̂łɑ݂āEi Properties Zbgjw û´ˆí½‡Ȃ̃vpeB́Aconnection ID ƂƁEi[ ŁEB
Properties t3props = new Properties();
t3props.put("weblogic.t3", t3);
t3props.put("weblogic.t3.dbprops", dbprops);
t3props.put("weblogic.t3.driverClassName",
"weblogic.jdbc.oci.Driver");
t3props.put("weblogic.t3.driverURL",
"jdbc:weblogic:oracle");
t3props.put("weblogic.t3.connectionID",
dbconnid);
t3props.put("weblogic.t3.cacheRows", "100");
t3props.put("weblogic.t3.name", "CustInfo");
t3props.put("weblogic.t3.description",
"customer info connection");
hCõNX URL Ƃ̃tH[}bg͈Ⴂ܁ENX̓hbgŁEAURL 聂̓RŁE B
URL gpú»¹úӁEWebLogic JDBC vpeB̐݁E/p>
J芔ɁEẮAwf[^x[XɃvpeB 𐂷 Ajava.util.Properties IuWFNg̎gp ꍁEBƂAPowersoft PowerJ ̂ł́AProperties IuWFNg DBMS [Uú»€úpX[h̐݁Egpł܁EWebLogic AWebLogic JDBC ڑɕKvȂׂẮE 𒂽߁EURL ɃXL[WĂ܁EURL gpú»¹úӁEWebLogic JDBC ڑvpeB̐݁EڍׂɂẮA
JDBC ڑ̃vpeB 𐂷邽߁EURL ̂̎g T3 hCo̎g QƂāE
WebLogic JDBC v胃O A̖ړIŖI T3Client ȃIuWFNgKvƂȂꍇ́A߁ET3Client ݂gpú»¹úӂł܁E߁ET3Client ݂́A�E¬AڑA ڑúEɍs ܁E߁ET3Client ݂gpú»¹úӂ邽߂ɕKvȁÉAjava.util.Properties IuWFNgɁAWebLogic Server URL ́E 𒕃vpeB 𐂷邾ŁE
ȉ́A߁ET3Client ݂gpú»¹úӂȒPȁEB́ÉAJDK 1.1 Ŏgp weblogic.jdbc.t3.Driver gp܁E ́Ajava.sql JDBC NXׂĊ܂܁E܁ÉÉAT3Client IuWFNg ú»�E°‚͍\z܁E
@Class.forName("weblogic.jdbc.t3.Driver").newInstance();
@// DBMS ڑ邽߂̃vpeB 𐂷
@Properties dbprops = new Properties();
遁@dbprops.put("user", "scott");
@dbprops.put("password", "tiger");
@dbprops.put("server", "DEMO20");
@Properties t3props = new Properties();
@t3props.put("weblogic.t3.dbprops", dbprops);
@//WebLogic URL ́E𐂵Ė߁ET3Client ݁E
@t3props.put("weblogic.t3.serverURL","t3://localhost:7001");
ú»´ú́@t3props.put("weblogic.t3.driverClassName",
@ "weblogic.jdbc.oci.Driver");
@t3props.put("weblogic.t3.driverURL",
@ "jdbc:weblogic:oracle");
@t3props.put("weblogic.t3.cacheRows","10");
@Connection conn =
@ DriverManager.getConnection("jdbc:weblogic:t3", t3props);
@Statement stmt = conn.createStatement();
@stmt.execute("select * from empdemo");
@ResultSet rs = stmt.getResultSet();
@while (rs.next()) {
@ System.out.println(rs.getString("empid") + " - " +
@ rs.getString("name") + " - " +
@ rs.getString("dept"));
@}
@ResultSetMetaData rsmd = rs.getMetaData();
@stmt.close();
@conn.close();
}
܁EvpeB weblogic.t3.connectionPoolID 𐂷 A߁ET3Client ݁EWebLogic JDBC v[ JDBC gpú»¹úӁEݒ肷邱Ƃł܁Eڑv[ JDBC gpú»¹úӁEAweblogic.t3.serverURL vpeBƂƁEAv[ v𗋁邽߂̃vpeBKvŁEv[̏ڍׂɂẮÃ}jÁuڑv[̎gv QƂāE
T3Client WebLogic Ƃ̃ZLeBEú»�í²�AT3User Ƀ[UƃpX[h 𐂷K镗v ցE�ET3Client ݂gpú»¹úӂł܁EɁE܁ÉEAweblogic.properties t@CɁAT3UserudevelopmentvÃv[ ڑureservevú»�E±‚鋖ƂƁEljB v[uengvւ̃ANZX 𐂵܁E
weblogic.password.development=3Y(sf40!VmoN
weblogic.allow.reserve.weblogic.jdbc.connectionPool./
eng=development
́EA̐ڑv[ ڑ߁ET3Client ݂Ŏgp @ú»ºú҂Ă܁E
Properties t3props = new Properties();
t3props.put("weblogic.t3.serverURL",
"t3://localhost:7001");
t3props.put("weblogic.t3.connectionPoolID", "eng");
t3props.put("weblogic.t3.user", "development");
t3props.put("weblogic.t3.password", "3Y(sf40!VmoN");
f[^x[X T[ȍꏊȂǁAڑ̂̑̃vpeBׂ͂āANɐڑv[ weblogic.properties tú»´úσ@C̃RtBO[V GgɁEĐݒ肳 BzzLbgɕtv郃peB t@Cɂ́Aڑv[̃GgiRgAEg ܂j̗Ⴊ B
WebLogic JDBC NCAg͒ڃf[^x[XɐڑAT3Client ́E f[^x[XɃANZX WebLogic Server ڑ܁E2 wڑiWebLogic Server DBMS Ɗԁj wڑiWebLogic JDBC NCAgAWebLogic ServerA DBMS ԁj́E JDBC hCo Kv B2 wڑ̃NX URL ́Ałɐ־悤 Properties ɃIuWFNgŐݒ肵܁E
WebLogic JDBC NCAgAWebLogic ServerA DBMS Ԃ̐ڑ̏ꍇAwځE WebLogic JDBC hú»¨úσCõNX URL ú»�E²�E
WebLogic JDBC hCõNX́AClass.forName().newInstance() \bhNú»Œí³‰X weblogic.jdbc.t3.Driver ŌĂяo܁EClass.forName().newInstance() vpeB ú»€ú؏oƁAhCõNX[hoꓘ^ B
̃hCo URL jdbc:weblogic:t3 ́EDriverManager.getConnection() ú»Œí±ƒ\bh́EĒ܁E
́ÉAClass.forName().newInstance() \bhg WebLogic JDBC ú»¸úhCoú»ºúەʁE[h܁EɁAWebLogic JDBC hCo URL ́E Properties IuWFNg JDBC ŐځEú»€úفE
// WebLogic JDBC ̃NX
Class.forName("weblogic.jdbc.t3.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:weblogic:t3",
t3props);
ڑmú»©úӧi遂܁EJDBC 聐ڑIuWFNg\zú»µúj遂ƁAWebLogic JDBC \bh JDBC ú»€úEƓ悤Ɏgpł܁E
LbVڑƐڑv[
WebLogic ́AxgΗpŁEJDBC T3Clients ܁EDBMS ɃOC ́AׂΞԂ© BĎgpŁE ADBMS ɐڑ邽߂ׂ́̕AځE 1 ú»´úEú»�E²‚݂܁EWebLogic Server ́AxgΗpŁEɁAڑJú»¨ú܂܂ɂ܁E
ĎgpŁE 2 ́E BOtLbV JDBC ڑƐڑv[ŁE
LbV JDBC ڑ͍쐬Aꁎgp A灁EgpŁE T3Client ɂ̃[NXy[XɊi[ BJDBC ڑLú»Œí³ƒbVĂƁAڑퟧúٓx 邽߂ׂ̕ɍς݂܁EALbVڑ́AI ̓f[^x[X \[X ú»�E²‚邱ƂɁE BJDBC ڑLú»Œí³ƒbV ȂŜ́Ei[ B
JDBC ڑ̃v[́AWebLogic Server NƂɁAJDBC ڑv Oɍ쐬 AT3Client. ɁEēIɍ쐬 Bweblogic.Admin NX create_pool ̃R}hgpú»¹úӂāAIɍ쐬邱ƁE܁E
T3Client WebLogic Server ɐځEAڑv[ú»Œí±�EŁEIɖ߂Ƃł܁Eڑv[ ú»€úقƂ́AȁE[Xif[^x[XڑȂǁj̃NCAgɊ蓖āEȕ@ BׂĂ̐ڑ蓖āEꍁE�Aڑ̍ő吔܂Ńv[Bł܁E܁EOtv[Ƀ[U O[vú»¨úЂ蓖Ă邱ƁE܁Eڑv[́E쐬 xŁEgpŁEŁAWebLogic Server DBMS ځE ú»´úΕׁE𗂦邱Ƃł܁E
ڑv[ƃLbVڑ͈Ⴂ܁ELbV JDBC ڑ͓R T3Client ɁEč쐬AJDBC ꁐڑɊցÉׂAT3Client ̂̃[NXy[XɊi[ BLbVڑL ̂́AT3Client ̗L ԂŁEWebLogic Server T3Client ̂̃\[XNú»Œí³Š[ Abv ALbVڑ͔j ܁E
Aڑv[́AǁET3Client ̂gΗpł܁Eڑ̗L Ԃ́AT3Client ̗L ԂƂ͊W BT3Client ڑv[̐ڑNú»Œí³�[Y A̐ڑ̓v[ɖ߁EꁁET3Client ̂gpŁEԂɂȁEB܁E聐ڑ́E̓N[Y B
LbV JDBC ځEڑv[̍쐬 gp@ Ĉȉŏڂ־܁E ́ABɁuNCAgTChvځEڑv[ŁEʁEWebLogic JDBC ̊g@\ð—�Ep AHTTP T[ubgAT3Client ⁂gpú»¹úӂȂ̑̃AvP[VɎgp邽߂̃T[oڑv[ ú»€úق܁ET[oTChڑv[̏ڍׂɂẮAJ҃KCh́wWebLogic HTTP T[ubg vO}[Y KChxQ ú»¸úہE
OtLbV JDBC ڑ̎g
JDBC AOtāAWebLogic Server T3Client ̃[NXy[XɃLbVĂƁA JDBC ̐ڑ͍Ďgpł܁ET3Client ̃LbV JDBC ڑ́AT3Client WebLogic Server 葶܁ẼLbV JDBC ڑ̗L ԂEɁÉAT3Client ̃\tgڑú^CAEg DISCONNECT_TIMEOUT_NEVER ú»€úΒ肵܁ELbV JDBC ڑ̗L ԂEɁEAT3Client ́AWebLogic Server AWebLogic Server ̗L Ԃ́E葶郏[NXy[Xú»¹úقƂɂȁEB\tgڑú^CAEg never ú»€úΒ肷 AT3Client.disconnect() \bh ú»€ú؏o T3Client āEú»½úāEWebLogic Server B T3Client ͂̃\[X̕Ԋ҂v𗋁܁E
̃NXɁAĎgpŁE遖Ot JDBC ځEú»€úفEOt JDBC ڑ́Ajava.util.PropertyconnectionID Ŏʂł܁E
̃NXɁE2 ͂̃\bh BJDBC ځE ú»´úΎgp邽߁Estatic getConnection() ̃\bh main() ƂŁE܁EgetConnection() \bh̃R[hɂĐ־܁E
̃\bh JDBC ͐ڑIuWFNg ú»�Eµ�EWebLogic Server ɂłɑ݂v郃peBuconnectionIDv 𒍇AOC ANZXȂǂ̂̑̃vpeBׂ͂ĖAꁃf[^x[Xւ̐ځEgp ú»´úΕKvȂׂẮE LbV JDBC ڑgp B
@static Connection getConnection(T3Client t3, String dbconnid)
@ throws Exception
@{
@ // connectionID w AWebLogic Server û´ˆí²�EconnectionID ́Ebr>@ //݂Ȃꍇɂ̂݁A
@ //̃vpeBgp B
@ // connectionID ݁EA̒ĺE
@ Properties dbprops = new Properties();
@ // 2 wvpeB 𐂷
@ dbprops.put("user", "scott");
遁@ dbprops.put("password", "tiger");
@ dbprops.put("server", "DEMO");
@ Properties t3props = new Properties();
@ // connectionID ú»€ú֑wvpeB 𐂷
@ t3props.put("weblogic.t3", t3);
遁@ t3props.put("weblogic.t3.dbprops", dbprops);
@ t3props.put("weblogic.t3.driverClassName",
@ "weblogic.jdbc.oci.Driver");
@ t3props.put("weblogic.t3.driverURL",
@ "jdbc:weblogic:oracle");
@ // dbconnid LbV A ł̃vpeB
́@ // ׂāEBڑ͂ɁE
@ t3props.put("weblogic.t3.connectionID", dbconnid);
遁@ Class.forName("weblogic.jdbc.t3.Driver").newInstance();
@ return DriverManager.getConnection("jdbc:weblogic:t3",
@ t3props);
@}
̃R[h ́Aȉ̎菇 sú»€úځE
T3Client t3 = new T3Client("t3://localhost:7001");
t3.connect();
t3.setSoftDisconnectTimeoutMins(T3Client.DISCONNECT_TIMEOUT_NEVER);
String wsid = t3.services.workspace().getWorkspace().getID();
ɁAgetConnection() \bhumyconnvú»�E±‚ƂOw ú»¹úΌĂяoƂɁEāAOracle f[^x[Xڑ邽߂̖Ot JDBC ځEú»€úفE
System.out.println("Logging into database and " +
"saving session as myconn");
Connection conn = getConnection(t3, "myconn");
ŁAT3Client ú»½úāAnull ɐݒ肵܁E\tgڑú^CAEg never Ȃ̂ŁAWebLogic Server ́ÃNCAg̃[NXy[X Ot JDBC ځEú»€úցE[X ú»�Eµ�E
t3.disconnect();
t3 = null;
ɁAŏ̃NCAg̃[NXy[X ID ú»¹úقV T3Client ú»´úαƂɁEāAWebLogic Server ɍĐڑ܁E AT3Client ú»€úكNCAgō쐬[NXy[XɍăN܁Ẽ[NXy[Xɂ́AumyconnvƂOŃLbV JDBC ڑi[ ܁E
AgetConnection() \bhumyconnvú»�E±‚ƂOw ú»¹úΌĂяoƂɁEāAOracle f[^x[Xւ̐ځEJú»€úق܁EڑɕKvȂׂẴp[^͂łɑ݂Ă܁ECӂ̃f[^x[Xs JDBC ú»´úΐڑIuWFNg ú»�Eµ�E
t3 = new T3Client("t3://localhost:7001", wsid);
t3.connect();
for (int j = 0; j < 5; j++) {
System.out.println("Reestablishing database connection");
conn = getConnection(t3, "myconn");
System.out.println("Performing query");
QueryDataSet qds = new QueryDataSet(conn, "select * from emp");
qds.fetchRecords();
System.out.println("Record count = " + qds.size());
qds.close();
}
conn.close();
T3Client ̃\[Xgpú»¹úӁEIAT3Client 灂̃\tgڑú^CAEg zero ú»ˆí²±ƂŁAWebLogic Server ̃\[X̕Ԋ҂v𗋁ŁEɂ邱Ƃł܁E AT3Client disconnect() \bh ú»€ú؏oƁAɃN[Abv
s BɁE܁E
t3.setSoftDisconnectTimeoutMins(0);
t3.disconnect();
ڑv[̎g
̂¤ 1 ̕@ AJDBC ڑ̃v[ ú»´úŁET3User ̓v[ v𗋁ł܁Eڑv[ ` 𒂁Aweblogic.properties t@CŒ`苂邩AuX^[gAbvvځEú»€ú؏oA܁ET3Client ̓AvP[V©A灁Es WebLogic Server ̂ɁuIɁvڑv[ ú»€úفE
JDBC ڑ̃v[ ú»€úقƁAT3Client ͂łɊJāEɂɃANZX邱Ƃł܁Ev[̐ڑ́AO[ṽo[ɁEċL ̂ŁAe DBMS [UVڑJú»¨úέׂɍς݂܁E
X^[gAbvڑv[̍쐬
X^[gAbvڑv[́Aweblogic.properties t@CŐ錾 BWebLogic Server ́AWebLogic ̋NɃf[^x[XɑEJDBC Jú»¨úΫAڑv[ú»Œí±ƒɒljB܁E
X^[gAbvڑv[́Aweblogic.properties t@C̈ȉ̃p^[́EGgŒ`苂܁EzzLbgɕt̃vpeB t@ĆuJDBC Connection Pool Management:vƂỏɁEĐ־ ܁E
weblogic.jdbc.connectionPool.VirtualName=\
url=JDBC driver URL,\
driver=full package name for JDBC driver,\
loginDelaySecs=seconds between each login attempt,\
initialCapacity=initial number of connections in the pool,\
maxCapacity=max number of connections in the pool,\
capacityIncrement=number of connections to add at a time,\
allowShrinking=true to allow shrinking,\
shrinkPeriodMins=interval before shrinking,\
testTable=name of table for connection test,\
refreshTestMinutes=interval for connection test,\
testConnsOnReserve=true to test connection at reserve,\
testConnsOnRelease=true to test connection at release,\
props=DBMS connection properties
weblogic.allow.reserve.weblogic.jdbc.connectionPool.name=\
T3Users who can use this pool
weblogic.allow.reset.weblogic.jdbc.connectionPool.name=\
T3Users who can reset this pool
weblogic.allow.shrink.weblogic.jdbc.connectionPool.name=\
T3Users who can shrink this pool
[U Aú»�E²‚ŁE܁EȗłȁE͕K{ƋL ܁EK{̒l BꍇAWebLogic Server ͋NɗOኂ𑗏o܁E
̃vpeB́EȒPȐ־ ú»€úԎ܁E
select count(*) from testTable eXgɎgp BtestTable ́AK
݁E̐ڑ̃f[^x[X [UANZXŁÊłȁEȁEB ú»�E²ƒf[^x[X T[óESQL ́EKú»€úفAe[u XL ú»‹íµ‚܁E AtestTable BAsú»�E½‚Ȃi܂͂܁EȂje[u̖Oɐݒ肷邱Ƃ͗LvŁE
tbVL 𗌂 ́ArefreshTestMinutes eXgú»�E°�E̕ɐݒ肵܁Eŏl 1 ͂ŁE refreshTestMinutes l 𐂵ꍇAl̓ftHg 5 ŕɂȁEB f[^x[X e[ueXú»Œí³ƒgɎgp ́AtestTable ú»€úփf[^x[X e[u̖Oɐݒ肵܁EtbV@\L 𗌂 ́ArefreshTestMinutes testTable Ƃ́EvpeB 𐂵ȁEȁEB
́EAWebLogic zzLbgɕt weblogic.properties ̃t@C B ŁA3 ET3UseŕiGuestAJoeAJilljANZXłueng遁vƂO̐ڑv[ ú»€úفÉEŁE4AŁE10 Oracle f[^x[XցEJDBC ̐ڑAú»�E³�EUuSCOTTvApX[hutigervAT[ouDEMOvŊ蓖Ă܁EWebLogic Server ́AOa ú»�í±ƒlbg[NŃ[hꂸADBMS 烍OCú»ú͔ہEƂȂ悤Aڑퟸúڂ݂邲ƁE1 ɕbԃX[v ú»�í±‚ȁEBڑv[́Av[ ځE15 ȏg㎗p AځE4 ú»€úΖ߂܁E10 Ƃɖgp̐ڑeXgAꁌÂȁEĂ܁E ̓tbV B
weblogic.jdbc.connectionPool.eng=\
url=jdbc:weblogic:oracle,\
driver=weblogic.jdbc.oci.Driver,\
loginDelaySecs=1,\
initialCapacity=4,\
maxCapacity=10,\
capacityIncrement=2,\
allowShrinking=true,\
shrinkPeriodMins=15,\
refreshTestMinutes=10,\
testTable=dual,\
props=user=SCOTT;password=tiger;server=DEMO
weblogic.allow.reserve.weblogic.jdbc.connectionPool.eng=\
guest,joe,jill
weblogic.allow.reset.weblogic.jdbc.connectionPool.eng=\
joe,jill
weblogic.allow.shrink.weblogic.jdbc.connectionPool.eng=\
joe,jill
[ŨpX[h null ̏ꍇAڑv[o^̃pX[hɁE ŁÂ܂܂ɂĂāÉEAWebLogic Ǘ҃KCh properties ́EB ŁE
weblogic.jdbc.connectionPool.eng=\
url=jdbc:weblogic:oracle,\
driver=weblogic.jdbc.oci.Driver,\
loginDelaySecs=1,\
initialCapacity=4,\
capacityIncrement=2,\
maxCapacity=10,\
props=user=sa;password=;server=demo
weblogic.allow.reserve.weblogic.jdbc.connectionPool.eng=guest,joe,jill
Iڑv[̍쐬
WebLogic [X 4.0 JNDI x[X API ̂ł́AT3Client AvP[V ڑv[ ú»´úαƂł܁E API ̂gpú»¹úӁEAłɁEs WebLogic Server ڑv[ ú»€úق܁E
Iv[͈ꎞIɁEł܁E Av[ ǂ̐ڑłfÁ[^x[X T[oƂ̒ʐMTXyh B v[L 𗌂ꍇAeڑ́Eú»�í±ƒv[EƂƓȂ̂ŁANCAg͒fꂽƂ납f烁[^x[X pł܁E
weblogic.properties t@C̃vpeBAweblogic.allow.admin.weblogic.jdbc.connectionPoolcreate ́AIڑv[ ú»€úق郆[Uw ú»¹úẼvpeBݒ肳 ȂꍇAusystemv[UIڑv[ ú»€úق܁E
ƂÃvpeB́A[Uujoev ujanevɓIڑv[̍쐬ú»ú҉܁E
weblogic.allow.admin.weblogic.jdbc.connectionPoolcreate=joe,jane
Iڑv[ ACL ɁE ú»´úAweblogic.allow.reserve.ACLname Gg weblogic.allow.admin.ACLname Gg weblogic.properties t@ú»Œí³ƒCɒljB܁EƂAȁE2 ̂̃vpeB́AudynapoolvƁEACL `ú»�E²�AueveryonevO[vׂ̂Ẵ[Uɐڑv[̎gpú»ú҉E[Uujoev ujanevɐڑv[̊Ǘퟭú҉܁E
weblogic.allow.admin.dynapool=joe,jane
weblogic.allow.reserve.dynapool=everyone
Iڑv[ ú»´úAACL ̐ڑv[Ɋ֘At ܁EACL Ɛڑv[͓OŁE镗v͂ȁE̐ڑv[ 1 EACL ̂gpú»¹úӂ邱Ƃł܁EACL w ú»¹úꍇ́usystemv[Uv[̃ftHg̊Ǘ[UƂȁE聂܂ǂ̃[UvÁ[ ڑgpú»¹úӂł܁E
T3 AvP[V̒œIڑv[ ú»´úA܁EWebLogic JNDI voC_ւ́EJNDI R㓃eLXg Aú»€úځuweblogic.jdbc.common.JdbcServicesvú»Œí»ƒbNAbv܁ÉEA̕@ ܁E
Hashtable env = new Hashtable();
env.put(java.naming.factory.initial,
"weblogic.jndi.WLInitialContextFactory");
// WebLogic Server URL
env.put(java.naming.provider.url, "t3://localhost:7001");
env.put(java.naming.security.credentials,
new T3User("joe", "joez_secret_wrdz"));
Context ctx = new InitialContext(env);
// weblogic.jdbc.JdbcServices ̂ퟌú׃bNAbv
weblogic.jdbc.common.JdbcServices jdbc =
(weblogic.jdbc.common.JdbcServices)
ctx.lookup("weblogic.jdbc.JdbcServices");
weblogic.jdbc.JdbcServices ú»Œí½�[hAweblogic.jdbc.common.JdbcServices.createPool() 灃\bhɃv[Lqú»¬úہEProperties I郃uWFNgɓn܁EProperties IuWFNgɂ́Aweblogic.properties t@CŐڑv[ ú»´úν߂ɎgpvpeBƓvpeB܂܁E܁EAuaclNamevvpeB́AIڑv[ɌŗĹEŁE
ȉ́ÉAOracle f[^x[X DEMO pɁueng2vƂڑv[ ú»€úق܁E̐ڑ́AutigervƂpX[hú»¹úق[UuSCOTTvƂăf[^x[XɃOC܁Ev[�E¬ ƁAf[^x[XځE1 J܁Ẽv[ɂ́AځE 10 û¯±ú̬邱Ƃł܁EuaclNamevvpeBɂ́A̐ڑv[ŁEweblogic.properties ̓t@ĆudynapoolvACL gp Ƃw肳 ܁E
weblogic.jdbc.common.Pool pool = null;
try {
// ڑv[̃vpeB 𐂷B
// 遃vpeB́Aweblogic.properties t@C
// ŋNڑv[̒`苂Ɏgp ƁEbr> Properties poolProps = new Properties();
poolProps.put("poolName", "eng2");
poolProps.put("url", "jdbc:weblogic:oracle");
poolProps.put("driver", "weblogic.jdbc.oci.Driver");
poolProps.put("initialCapacity", "1");
poolProps.put("maxCapacity", "10");
poolProps.put("props", "user=SCOTT;
password=tiger;server=DEMO");
poolProps.put("aclName", "dynapool"); // gp ACL
// 铯ÓEv[݁EA�E¬͎s
jdbc.createPool(poolProps);
}
catch (Exception e) {
system.out.Println("Error creating connection pool eng2.");
}
finally { // JNDI R郃eLXgNú»Œí³�[Y
ctx.close();
}
v[ ڑ̎擾
ڑv[ gpú»¹úӁÉAJDBC ڑJú»¨úέꍁE‚قړŁEJDBC hCo NX weblogic.jdbc.t3Client.Driver ͂ŁAځEURL ́ujdbc:weblogic:t3vŁEgp v[w û´ˆí²�Ajava.util.Properties IuWFNg Aweblogic.t3.connectionPoolID ú»€úقvpeB v[ú»�E°–Oɐݒ肵܁E
ڑv[ Bú»¸ú̓NCAg AvP[VŐڑv[ gpú»¹úӁÉAjava.util.Properties IuWFNg Aweblogic.t3.connectionPoolID ú»€úقvpeB WebLogic Server weblogic.properties t@Cú»€ú쐬ڑv[̖Oɐݒ肵܁E
̊ȒPȁÉAT3Client AProperties IuWFNg 𐂵āE灐ڑv[uengv Jú»¨úΫ܁E̐ڑv[ weblogic.properties ̃t@C Gg͂łɐ־ƁEB
@T3Client t3 = new T3Client("t3://bigbox:7001");
@ t3.connect();
@ // ݒ肪KvȃvpeB
́@ // T3Client connectionPoolID ƁE2 ̂ł邱ƂɒӁEbr>@ Properties t3props = new Properties();
遁@ t3props.put("weblogic.t3", t3);
@ t3props.put("weblogic.t3.connectionPoolID", "eng");
@ Class.forName("weblogic.jdbc.t3.Driver").newInstance();
@ Connection conn =
@ DriverManager.getConnection("jdbc:weblogic:t3",
@ t3props);
@ // Cӂ̃f[^x[Xsú»´úΤ
@ QueryDataSet qds = new QueryDataSet(conn, "select * from emp");
@ qds.fetchRecords();
@ System.out.println("Record count = " + qds.size());
@ qds.close();
@ // ځE
@ conn.close();
@ // NCAgí²�ځE
@ t3.disconnect();
ú»¤ú́@}
JDBC ڑ͂̃NCAgɁEāEANCAgځEOú»¥ú͂Ƀv[ɖ߁EBJDBC ڑڑv[ɖ߁EƁA JDBC ̃gUNV̓[obN N[Y B
v[ڑgpŁEɂȁEőҋ@B遃v[ ׂĂ̐ڑgp ANCAǵAftHgł́Aڑgp\ɂȁEőҋ@܁ÉEAȁE2 ̂̕@ ύXł܁E
DriverManager.getConnection() ́AɗO܁E
DriverManager.getConnection() O܁E
ҋ@E ́ADriverManager.getConnection() ɓn Properties IuWFNg weblogic.t3.waitForConnection ̃vpeBufalsevú»�E±‚ɐݒ肵܁E
Properties t3props = new Properties();
t3props.put("weblogic.t3", t3);
t3props.put("weblogic.t3.connectionPoolID", "eng");
t3props.put("weblogic.t3.waitForConnection", "false");
Class.forName("weblogic.jdbc.t3.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:weblogic:t3",
t3props);
ҋ@E ADriverManager.getConnection() ̌ĂяóAgpŁEȂƂɗOኂ𑗏o܁E
gpŁE ú»�E±ŽԂw û´ˆí²�Aweblogic.t3.waitSecondsForConnection vpeBŔCӂ̎ԁE𐂵܁ÉÉA15 b҂܁E
Properties t3props = new Properties();
t3props.put("weblogic.t3", t3);
t3props.put("weblogic.t3.connectionPoolID", "eng");
t3props.put("weblogic.t3.waitSecondsForConnection", "15");
Class.forName("weblogic.jdbc.t3.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:weblogic:t3",
t3props);
weblogic.jdbc.common.Pool C^tF[X weblogic.jdbc.common.JdbcServices ƃC^tF[X́Aڑv[ A ú»¨úΊցE 邽߂̃\bh ú»�E²�E\bh̖ړI͈ȉ̂ƁEB
v[ɊցE
poolExists() \bh́Aw肳ꂽO̐ڑv[ WebLogic Server ɑ݂邩ǂׂ܁Ẽ\bhgpú»¹úӁEAIڑv[łɍ쐬 邩ǂׁA�E¬铮Iڑv[ɌŗL̖Ot邱Ƃł܁E
getProperties() \bh́Aڑv[̃vpeB ú»€úځE
ڑv[́E/p>
ڑv[ Iú»€úԁEāANCAg̃v[ hƂł܁Eڑv[L 𗌂́EŁÉAusystemv[UA܂͂̃v[Ɋ֘At āEACL āuadminvp[~bV^ [UŁE
disableFreezingUsers() ú»€ú؏oƁAv[̐ڑퟳúݎgBāE郃CAg͒f ú»�í±’u Bf[^x[X T[oƒʐM悤ƁEAOኂo BANCAg͐ڑv[ ȁEāEɎ̐ڑNú»Œí³�[Ył܁ȄꍇAڑ̓v[ɕԁEꁃv[L ȁEł͕ʂ̃NCAg\痖邱Ƃ͂ł܁E
disableDroppingUsers() gp Aᣈí²‘v[ Ȃ邾łȁẼv[ɑE郃CAg JDBC ̐ڑj ܁E̐ڑōs g郃UNVׂ͂ă[obNAꁂ̐ڑڑv[ɕԁEBNCAg JDBC ̐ڑReLXǵEȁEB
disableFreezingUsers() ŁEv[ ú»€úٗL ꍇAgpBeځEJDBC ̐ځEú»�í±‚̐ڑv[ ꂽƂƓȂ̂ŁANCAg͂傤ǒfƂ납 JDBC 瑀 sł܁E
Aweblogic.Admin NX disable_pool ̃R}h enable_pool ƃR}hgpú»¹úӂāAv[EL藁E ܁E
ڑv[̏k
ڑv[́Av[ ڑ́Eő吔 ` Að’�EvpeBiinitialCapacity maxCapacityƁjƁAڑׂĎgp̂ƂɃv[ɒljB ڑ́E`v𒃃peBicapacityIncrementj ú»�E´‚܁Ev[̍őe嗗ʂɒB Aő吔̐ڑJƂɂȁE聃v[kú»¼ú۬ȁE肻 ̐ڑ͊J܂܂ɂȁEB
ڑ̎gps[N Aú»¤úΑv[ ú»Ší²‚폜āAWebLogic Server DBMS ƁE\[X 賈í²©܂܁E
v[~
̃\bh́Aڑv[j Bڑ̓N[Y v[ Aꁃv[ɎcBāEȂȁEv[͏Vł܁Eڑv[j ́Ausystemv[UA܂͂̃v[Ɋ֘At āEACL āuadminvp[~bV^ [UŁE
shutdownSoft() ́Aڑv[ɕԁÉEú»�E±‚āA ̐ڑNú»Œí³�[Y܁E
shutdownHard() \bh́AׂĂ̐ڑEɔj Bv[ ڑg ú»¸úE郃CAǵAshutdownHard() Ăяoꂽ ڑgú»¸úΨƁEAOኁE ú»¸úɂȁEB
Aweblogic.Admin NX destroy_pool ̃R}hg ú»¸úAv[j û˨úαƁE܁E
v[̃Zbg
ڑv[́A IɁA邢͐ڑ\ ú»�E²�E ɐڑeXú»Œí³ƒg ɃRtBO[V邱Ƃł܁EWebLogic Server v[ڑ́Eú»ºúՓIɕۂāEɂ邱ƂŁADBMS ڑɊցE 唼͖h ŁE AWebLogic ɂ́AAvP[V яoăv[ ׂĂ̐ڑA܂̓v[\痖P ڑퟌúփtbVł郁\bhpӁE܁E
weblogic.jdbc.common.Pool.reset() \bh́Aڑv[ 蓖āEāEú»‹í·‚ׂăN[YāE犂܁E AƂADBMS ċNꂽƂɕKvɂȂ邱ƁEBڑv[ 1 ̐ڑsꍁE�Av[ ׂĂ̐ڑsǂł邱ƂXɂāEB
1 ̐ڑퟌúփtbV ́Aweblogic.jdbc.t3.Connection NX refresh() ̃\bhgpú»¹úӂ܁Ẽ\bh ú»€ú؏oƁAڑ́E Resultset ׂ͂āE ƁEAڑJú»¨úέƂɔr䊓IׁEvP[VɁEBBāAڑsǂɂȁEĂƁE[ û³ˆí½�E‚́A̐ڑퟌúփtbV邱ƂúԊ߂܁E
JDBC ځE(weblogic.jdbc.t3.Connection) ú»€úΖIɃLXgK镗v B̑ɂ́AConnection NX refresh() ̃\bhA ú»�E°‘Ereset() ă\bhgpú»¹úӁEƓ悤Ɏgp @ B܁Eڑ́E 邩萬úí·�EE郃NVA gpú»¹úӂāEs܁EOኁEú»€úځArefresh() \bh ú»€ú؏o܁E
ɁE܁EJDBC ցEWebLogic ̊g@\ð—�Ep邽߂ɁAŁEs JDBC ŐځEweblogic.jdbc.t3.Connection ú»€úLXgĂ܁E
@T3Client t3 = new T3Client("t3://localhost:7001");
@t3.connect();
@Properties t3props = new Properties();@try {
@t3props.put("weblogic.t3", t3);
@t3props.put("weblogic.t3.connectionPoolID", "eng");
@Class.forName("weblogic.jdbc.t3c.Driver").newInstance();
@Connection conn =
@ DriverManager.getConnection("jdbc:weblogic:t3client",
t3props);
@ Statement stmt = conn.createStatement();
@ // SQL ́EOracle DMBS ͂ւ̓KȐڑɂāEbr>́@ // úíº•ۏE
@ ResultSet rs = stmt.executeQuery("select 1 from dual");
遁@ if (rs != null) {
@ while (rs.next()) {;}
@ }
@ rs.close();
@ stmt.close();
@ conn.close();
@}
@catch(SQLException e) {
@ // JDBC Connection weblogic.jdbc.t3.Connection
@ // LXgA
ā@ // refresh() \bh ú»€ú؏o
@ ((weblogic.jdbc.t3.Connection)conn).refresh();
@}
1 ̃v[ڑ̃tbV
v[ 1 ܂́E ڑÂȁEꍇAv[ 1 ̐ڑퟌúփtbV邱ƁEPڑv[ŜퟌúփZbg邱ƁE܁EƂAWebLogic Server ANeBuɐڑv[T|ú»Œí³�[gāEɁADBMS _EꍁE‚ǂŁEWebLogic Server 4.0 ڑv[tbV@\g ú»¸úEPځEI eXgû´Œí²�AtbV邱Ƃł܁E
v[ú»ŒíºƒZbg KȂ̂́AR ꍁE�E肳 B̋@\́A[U vÕ[`ƂĎgpł܁E Aᤈí±�ڑv[̃ZbgKvɂȁÉADBMS _EāAv[ ځEss\ɂȁEꍁE�EDBMS AbvĎgp\ɂȁEƂmFú»©úЂO鑂Ƀv[ú»ŒíºƒZbg悤ƁEAOኂo Bv[̃ZbǵAǗLú»¹úفE[U s ʂȁEB
ڑv[ú»ŒíºƒZbg ́A̕@⪁EB
$
java weblogic.AdminWebLogicURLRESET_POOLpoolNamesystempasswd
R}hC炱̕@ gƂ͂߁EɂȂµ B ANɐ־ ɃvOgpú»¹úӁEI擂ȕ@⪁EBAdmin R}h̏ڍׂɂẮAWebLogic wǗ҃KChx́uWebLogic Server ̉^pƃeiXvQ ú»¸úہE
reset() 郁\bhgpú»¹úӂ܁E
ŁEP[X́AsׁEłѽȁEA̔ʁAŁE2 ̂̕@ _û¬« BTv R[hgpú»¹úӂāAreset() \bh̎gp@ ־܁E
ȉ́Areset() \bhgpú»¹úӂv[̃ZbǵEB
reset() Ń\bh ú»€ú؏o܁E
̊ȒPȃR[h AOracle DBMS ցE5 ̂̐ځEv郁[ŁE遃f JDBC ڑv[uengveXú»Œí³ƒg܁E
@String poolID = "eng";
@T3Client t3 = new T3Client("t3://localhost:7001");
@t3.connect();
@Properties t3props = new Properties();
@t3props.put("weblogic.t3", t3);
@t3props.put("weblogic.t3.connectionPoolID", poolID);
@Class.forName("weblogic.jdbc.t3.Driver").newInstance();
@Connection conn =
@ DriverManager.getConnection("jdbc:weblogic:t3client",
t3props);
@try {
@ // ڑgp\łȂꍇA̐ځE
ú»�E²�@ // 炩̏ퟸúڂ݁EA SQLException
@ Statement stmt = conn.createStatement();
遁@ // SQL ́EOracle DMBS ͂ւ̓KȐڑɂāEbr>́@ // úíº•ۏE
@ ResultSet rs = stmt.executeQuery("select 1 from dual");
遁@ // Cӂ̃f[^x[Xsú»´úΤ
@ if (rs != null) {
@ while (rs.next()) {;}
@ }
@ rs.close();
@ stmt.close();
@ // ځE v[᪔í²•ԁEbr>@ conn.close();
@}
@// try ubNs ̓v[ú»ŒíºƒZbgB遂̃\bh
@// ú»�E¼�ovOł͊ǗғLKvł邱ƂɒӁE
遁@// f[^x[XĂюgp\ɂȁEƂmFú»©úЁE
Ł@// v[̃Zbgú»¸úڂ݂Ȃ悤ɒӁEbr>@
遁@catch(SQLException e) {
@ t3.services.jdbc().resetPool(poolID);
@}
WebLogic ̐ڑv[p ACL ̃ZbgAbv
weblogic.jdbc.connectionPool
weblogic.jdbc.connectionPool.poolID
WebLogic ́AWebLogic ŃZbgAbvꂽ ACL ú»�E²�AJDBC ڑv[̂悤ȓՔ\[Xւ̃ANZX𐧌䂵܁EWebLogic ACL ̂̃GǵAweblogic.properties t@C̃vpeBƂăXg ܁E
ڑv[ JDBC ̐ڑɁAp[~bVureservevAuresetvA ushrinkv 𐂷 ́AvpeB t@CɃvpeB ú»�E³‚܁EACLuweblogic.jdbc.connectionPoolvɃp[~bV 𐂷 AׂĂ̐ڑv[ւ̃ANZX Buweblogic.jdbc.connectionPool.<i>poolID</i>vƁEACL ɃGg ú»�E²‚邱ƂɁEāÃ[Ũp[~bV ú»�E²‚܁E Aڑv[ poolID ւ̃ANZX𐧌䂵܁EUʂȃ[U system ́Ãp[~bVǂ̂悤ɐݒ肳 邩ɁEA Ae ACL ̃p[~bVureservevAuresetvA ushrinkvú»¹úفEĂ܁E
:weblogic.allow.reserve.weblogic.jdbc.connectionPool.eng=margaret,
joe,maryweblogic.allow.reset.weblogic.jdbc.connectionPool./
eng=sysMonitorweblogic.allow.shrink.weblogic.jdbc./
connectionPool.eng=sysMonitor
ቺʌ݊̂߁AX^C̃vpeB\gpú»¹úӂāureservevp[~bV^𗂦邱ƁE܁E ́AvpeB weblogic.jdbc.connectionPool.poolID=allow= userlist ɁE𐂵܁EWebLogic ł́AX^C̃vpeBú»Ší²‚܂ŃT|[g邩úž© ߁AV@\f ́AvpeB t@C ú»ˆí²¾AbvO[h邱ƂúԊ߂܁E
f[^x[XɑăNG s ú»¸úAJDBC A܁EJDBC ͐ڑ̃ReLXgō쐬ꂽ JDBC ̃TuNX̂ꂩgpú»¹úӂ܁ENǦʂ́AJDBC ResultSet Ɋi[ Bf[^x[X̍sɃANZX ́AResultSet NX next() ̃\bh getXXX() \bhgpú»¹úӂ܁E
́ÉA܁EEmployee e[u 10 ɂ̃R[h} 𑓂BPreparedStatement JDBC PreparedStatementu?vú»�E±�\ƂƁEgp܁ER[hւ̍XV́APreparedStatement NX setInt() 烁\bh setString() \bhgpú»¹úӂ܁E
String inssql = "insert into emp (empno, empname) values (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(inssql);
for (int j = 0; j < 10; j++) {
pstmt.setInt(1, i);
pstmt.setString(2, "John Smith");
pstmt.execute();
}
pstmt.close();
l} AûÀŒí±ƒf[^x[X NG sAResultsSet.next() \bhú»€úڌʂׂ邱ƂɁEāA} eׂmFú»©úЂł܁EResultSet Statement IuWFNǵA CX^XꂽƂƂ͋t̏ŃN[Y܁E
Statement stmt = conn.createStatement();
ResultSet rs = stmt.execute("select empno, empname from emp");
while (rs.next()) {
System.out.println("Value = " + rs.getString("empno"));
System.out.println("Value = " + rs.getString("empname"));
}
rs.close();
stmt.close();
ɁAʁEPreparedStatement ̂gpú»¹úӂāA}⽃R[hXVú»µú̂܁E
String updsql = "update emp set empname = ? where empno = ?";
PreparedStatement pstmt1 = conn.prepareStatement(updsql);
for (int j = 0; j < 10; j++) {
pstmt1.setInt(2, j);
pstmt1.setString(1, "Person" + j);
pstmt1.executeUpdate();
}
pstmt1.close();
́ÉA}⽃R[h ú»€úفEŁEPreparedStatement setInt() \bhgpú»¹úӂāAú«œ郌R[hI 𑑂B
String delsql = "delete from emp where empno = ?";
PreparedStatement pstmt2 = conn.prepareStatement(delsql);
for (int j = 0; j < 10; j++) {
pstmt2.setInt(1, j);
pstmt2.executeUpdate();
}
pstmt2.close();
e Statement PreparedStatement IuWFNǵAgI āE
XgAh vV[W ́E g
WebLogic JDBC gp AXgAh vV[W ̍쐬AgpA ú«œsú»´úΦ܁Ep[^ 𐂷 ́ACallableStatement IuWFNgiPreparedStatement ̃TuNXj JDBC PreparedStatementu?vú»�E±�\gpú»¹úӂ܁E
́ÉÃXgAh vV[W f[ú»Œí±ƒ^x[X ܁ȄɁEJDBC ͕gpú»¹úӁEI ܁E
Statement stmt = conn.createStatement();
try {stmt.execute("drop procedure proc_squareInt");
} catch (SQLException e) {;}
try {stmt.execute("drop procedure func_squareInt");
} catch (SQLException e) {;}
try {stmt.execute("drop procedure proc_getResults");
} catch (SQLException e) {;}
stmt.close();
XgAh vV[W܂͊ցE ú»´úAJDBC Statement NXgpú»¹úӁE s ú»¸úAJDBC CallableStatement NXgpú»¹úӂ܁EXgAh vV[ẂEp[^́AJDBC IN ̃p[^Ƀ}bv AsetInt() 聂ȂǁECallableStatement.setXXX() ̃\bh JDBC PreparedStatementƁu?v\Ŏg ܁EXgAh vV[W̏o̓p[^́AJDBC OUT ̃p[^Ƀ}bv ACallableStatement.registerOutParameter() 聃\bh JDBC PreparedStatementƁu?v\Ŏg ܁EIN OUT Ƃ́Ep[^g ú»¸úAsetXXX() registerOutParameter() Ƃ̌Ăяo ӯp[^ԍōs ɂĂ©܂܁ESybase DBMS ᣈí½‡AJDBC L[[h CALL ASQL Server L[[h EXECUTE ́E gp BڍׂɂẮASybase ̃}jAQ ú»¸úہE
ɁAJDBC gpú»¹úӂāA 2 Sybase Xú»¼úσgAh vV[W ú»€úفEXgAh vV[W ACallableStatement ú»´ú͂gpú»¹úӂāEs܁Eo̓p[^ 𐂷 ́AregisterOutParameter() \bhgpú»¹úӂ܁E
Statement stmt1 = conn.createStatement();
stmt1.execute("create procedure proc_squareInt " +
"(@field1 int, @field2 int output) as " +
"begin select @field2 = @field1 * @field1 end");
stmt1.close();
CallableStatement cstmt1 =
conn.prepareCall("{call proc_squareInt(?, ?)}");
cstmt1.registerOutParameter(2, Types.INTEGER);
for (int i = 0; i < 10; i++) {
cstmt1.setInt(1, i);
cstmt1.execute();
System.out.println(i + " " + cstmt1.getInt(2));
}
cstmt1.close();
̃R[h A 2 ́EԁESybase XgAhցE @ú»ºú҂܁ECallableStatement ŃXgAhցEsAregisterOutParameter() ú»€úږ߂l蒂o^ð“�E܁E
Statement stmt2 = conn.createStatement();
stmt2.execute("create procedure func_squareInt (@field2 int) as " +
"begin return @field1 * @field1 end");
stmt2.close();
CallableStatement cstmt2 =
conn.prepareCall("{? = call func_squareInt(?)}");
cstmt2.registerOutParameter(1, Types.INTEGER);
for (int i = 0; i < 10; i++) {
cstmt2.setInt(2, i);
cstmt2.execute();
System.out.println(i + " " + cstmt2.getInt(1));
}
cstmt2.close();
̃R[h ASQL NǦʁE Sybase XgAh vV[W @ú»ºú҂܁ECallableStatement ŃXgAh vV[W sAResultSet ú»€úڌʁEú»€úځE
Statement.execute() Statement.getResultSet() \bhg ú»¸úXgAh vV[W ꂽ ResultSet ú»¼úԗāEȂƁAOUT p[^Ɩ߂X胃e[^X͎gp\ɂȁEB
Statement stmt3 = conn.createStatement();
stmt3.executeUpdate("create procedure proc_getResults as " +
"begin select name from sysusers \n" +
"select gid from sysusers end");
stmt3.close();
CallableStatement cstmt3 =
conn.prepareCall("{call proc_getResults()}");
boolean hasResultSet = cstmt3.execute();
while (hasResultSet) {
ResultSet rs = cstmt3.getResultSet();
while (rs.next())
System.out.println("Value: " + rs.getString(1));
rs.close();
hasResultSet = cstmt3.getMoreResults();
}
cstmt3.close();
̃R[h AStatement CallableStatement IuWFNggpú»¹úӁEOracle ăXgAh vV[W Aú»€úقяo@ Ă܁ẼvZX́ASybase vV[WƂقړŁE
Statement stmt1 = conn.createStatement();
stmt1.execute("CREATE OR REPLACE PROCEDURE " +
"proc_squareInt (field1 IN OUT INTEGER, " +
"field2 OUT INTEGER) IS " +
"BEGIN field2 := field1 * field1; " +
"field1 := field1 * field1; " +
"END proc_squareInt");
stmt1.close();
CallableStatement cstmt1 =
conn.prepareCall("BEGIN proc_squareInt(?, ?); END;");
cstmt1.registerOutParameter(2, Types.INTEGER);
for (int k = 0; k < 100; k++) {
cstmt1.setInt(1, k);
cstmt1.execute();
System.out.println(k + " "
+ cstmt1.getInt(1)
+ " " + cstmt1.getInt(2));
}
cstmt1.close();
ŁETv R[hł́AStatement CallableStatement IuWFNggpú»¹úӁEOracle ăXgAhցEAgp @ú»ºú҂Ă܁E
Statement stmt2 = conn.createStatement();
stmt2.execute("CREATE OR REPLACE FUNCTION " +
"func_squareInt " +
"(field1 IN INTEGER) RETURN INTEGER IS " +
"BEGIN return field1 * field1; " +
"END func_squareInt;");
stmt2.close();
// XgAhgpú»¹úӁEbr> CallableStatement cstmt2 =
conn.prepareCall("BEGIN ? := func_squareInt(?); END;");
cstmt2.registerOutParameter(1, Types.INTEGER);
for (int k = 0; k < 100; k++) {
cstmt2.setInt(2, k);
cstmt2.execute();
System.out.println(k + " "
+ cstmt2.getInt(1)
+ " " + cstmt2.getInt(2));
}
cstmt2.close();
菁E ڑ̃N[Y T3Client Ƃ̐ځE
ú»½úׂؑ̂āEJDBC ̃IuWFNgƓlɁAځEclose() ·K镗v Bf[^x[Xւ̃OCsꍁE‚ӯŁEĂȂƁAOC̍ő吔Ă܂\ B܁EWebLogic JDBCClient WebLogic Server ú»Ší¹�Edisconnect() 炷K镗v B
finally ubŃEtry ̃ubN close() Ń\bh disconnect() \bh ú»€ú؏oāAKȗOኁEú»€úځEfinally ubN ̃\bh ú»€ú؏oƁAC try ̃ubNOኂ𑗏oĊȂꍇŁEC\bh͊mɁEs BɁE܁E
finally {
if (conn != null)
try { conn.close(); } catch (SQLException sqe) {}
if (t3 != null)
try { t3.disconnect();} catch (Exception e) {}
}
NCAg disconnect() \bhg ú»¸úΐڑúEAWebLogic Server EOF ͗OኁE_v X^bNsú»´ú܁Edisconnect() Netscape ŃT[o OɁE EOF Oኂ͖āE
package examples.jdbc;
import java.sql.*;
import weblogic.db.jdbc.*;
import weblogic.common.*;
import java.util.Properties;
public class t3client1 {
public static void main(String argv[]) {
T3Client t3 = null;
Connection conn = null;
try {
t3 = new T3Client("t3://bigbox:7001");
t3.connect();
Properties dbprops = new Properties();
dbprops.put("user", "scott");
dbprops.put("password", "tiger");
dbprops.put("server", getParameter("server"));
Properties t3props = new Properties();
t3props.put("weblogic.t3", t3);
t3props.put("weblogic.t3.dbprops", dbprops);
// ߃hCõNX URL Ƃ̃tH[}bg
// قȂ邱ƂɒӁE遃NX̓hbgŁEA
// URL 聂̓RŁE
t3props.put("weblogic.t3.driverClassName",
"weblogic.jdbc.oci.Driver");
t3props.put("weblogic.t3.driverURL",
"jdbc:weblogic:oracle");
t3props.put("weblogic.t3.cacheRows",
getParameter("cacheRows"));
Class.forName("weblogic.jdbc.t3.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:weblogic:t3client",
t3props);
// ÃR[h}
String inssql = "insert into emp (empno, empname) values (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(inssql);
for (int j = 0; j < 10; j++)
pstmt.setInt(1, i);
pstmt.setString(2, "John Smith");
pstmt.execute();
}
pstmt.close();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select empno, " +
"empname from emp");
while (rs.next()) {
System.out.println("Value = " + rs.getString("empno"));
System.out.println("Value = " + rs.getString("empname"));
}
rs.close();
stmt.close();
// AûÀŒí¸ƒR[hXVú»µú́Ebr> String updsql = "update emp set empname = ? where empno = ?";
PreparedStatement pstmt1 = conn.prepareStatement(updsql);
for (j = 0; j < 10; j++) {
pstmt1.setInt(2, j);
pstmt1.setString(1, "Person" + j);
pstmt1.executeUpdate();
}
pstmt1.close();
// ÃR[h
String delsql = "delete from emp where empno = ?";
PreparedStatement pstmt2 = conn.prepareStatement(delsql);
for (int j = 0; j < 10; j++) {
pstmt2.setInt(1, j);
pstmt2.executeUpdate();
}
pstmt2.close();
// Xú»´úσgAh vV[W
Statement stmt1 = conn.createStatement();
stmt1.execute("CREATE OR REPLACE PROCEDURE " +
"proc_squareInt (field1 IN OUT INTEGER, " +
"field2 OUT INTEGER) IS " +
"BEGIN field2 := field1 * field1; " +
"field1 := field1 * field1; " +
"END proc_squareInt");
stmt1.close();
// Xú»´úσgAh vV[Wgpú»¹úӁEbr> CallableStatement cstmt1 =
conn.prepareCall("BEGIN proc_squareInt(?, ?); END;");
cstmt1.registerOutParameter(2, Types.INTEGER);
for (int k = 0; k < 100; k++) {
cstmt1.setInt(1, k);
cstmt1.execute();
System.out.println(k + " "
+ cstmt1.getInt(1)
+ " " + cstmt1.getInt(2));
}
cstmt1.close();
// X郃gAhցE
Statement stmt2 = conn.createStatement();
stmt2.execute("CREATE OR REPLACE FUNCTION " +
"func_squareInt (field1 IN INTEGER) " +
"RETURN INTEGER IS " +
"BEGIN return field1 * field1; " +
"END func_squareInt;");
stmt2.close();
// Xú»´úσgAhgpú»¹úӁEbr> CallableStatement cstmt2 =
conn.prepareCall("BEGIN ? := func_squareInt(?); END;");
cstmt2.registerOutParameter(1, Types.INTEGER);
for (int k = 0; k < 100; k++) {
cstmt2.setInt(2, k);
cstmt2.execute();
System.out.println(k + " "
+ cstmt2.getInt(1)
+ " " + cstmt2.getInt(2));
}
cstmt2.close();
}
finally {
if (conn != null)
try {conn.close();} catch (SQLException sqe) {}
if (t3 != null)
try {t3.disconnect();} catch (Exception e) {}
}
}
}
WebLogic JDBC ̑̋@\
WebLogic ́AWebLogic jDriver WebLogic JDBC ɂ̋@\ A𒂼 f[^x[XRú»¨úԂ܁E2 whCoɃT|[g 邷ׂĂ̋@\A wgpɌŗL̂̑̋@\́AWebLogic JDBC ̑wŎgp邱Ƃł܁E
Oracle \[X̑ҋ@
[X 2.5 AWebLogic 灂́AOracle oopt() C ̊T|ú»Œí³�[gĂ܁E A\[Xgp\ɂȁEŃNCAgҋ@ŁEɁE鋔\ŁEOracle C ́Avꂽ\[Xgp\łȂꍇ̃IvVibN @𑂩ǂȂǁj 𐂵܁E̊ɂẮAThe OCI Functions for C ̃ZNV 4-97 ɋLځE܁E
J҂́ANCAg DBMS \[X @𑂩A܂͒ɗOኁE w ú»¹ú܁Eȉ́Aexamples\jdbc\oracle\waiton.java B
t3 = new T3Client("t3://bigbox:7001");
t3.connect();
java.util.Properties dbprops = new java.util.Properties();
dbprops.put("user", "scott");
dbprops.put("password", "tiger");
dbprops.put("server", "bigbox");
Properties t3props = new Properties();
t3props.put("weblogic.t3", t3);
t3props.put("weblogic.t3.dbprops", dbprops);
t3props.put("weblogic.t3.driverClassName",
"weblogic.jdbc.oci.Driver");
t3props.put("weblogic.t3.driverURL",
"jdbc:weblogic:oracle");
t3props.put("weblogic.t3.cacheRows",
getParameter("cacheRows"));
Class.forName("weblogic.jdbc.t3.Driver").newInstance();
// ̊g@\ð—�Ep邽߁Ebr> // Connection ɁEweblogic.jdbc.oci.Connection ú»€úLXgK镗v
Connection conn =
(weblogic.jdbc.oci.Connection)
DriverManager.getConnection("jdbc:weblogic:t3", t3props);
// I郃uWFNg̍쐬AぁEbr> // waitOnResources Ƀ\bh ú»€ú؏o
conn.waitOnResources(true);
̃\bhgpú»¹úӁEAfIɃbN Ք\[X ú»�E±ŠԂɁAG[ ^[ R[hԁEƁEB
̋@\ð—�Ep ́AڑIuWFNg weblogic.jdbc.oci.Connection ú»€úLXgāEwaitOnResources() 灃\bh ú»€ú؏o܁E
g SQL
JavaSoft JDBC ̎dlɂ́ASQL g܁ESQL Escape Syntax ͂ƌĂE@\܂܁E܁EׂāEWebLogic jDriver JDBC ̃hCóAg SQL T|ú»Œí³�[gĂ܁EڍׂɂẮAgph郃Cop̊J҃KChQ ú»¸úہEXgɂẮAWebLogic JDBC IvVQ ú»¸úہE
Oracle ztFb`
WebLogic jDriver for Oracle ́A2 w JDBC Connection vpeB weblogic.oci.cacheRows 𐂷邱ƂɁEāAOracle ztFb`T|ú»Œí³�[g܁EWebLogic jDriver for Oracle gpú»¹úӁEA̋@\ WebLogic JDBC ͂łTÃ|[g ܁E
WebLogic JDBC ł̋@\ð—�Ep ́A2 wvpeB weblogic.oci.cacheRows 𐂵܁E
}`oCgZbg̃T|[g
WebLogic jDriver for Oracle ́AC^[iViC[[V T|[giAL24UTFFSS/UTF-8j āEWebLogic Server 聂ŎgpāEAWebLogic JDBC Ɋgł܁E̋@\̏ڍׂɂẮAWebLogic jDriver for Oracle p̊J҃KChɋLڂĂ܁E
WebLogic JDBC Oracle NUMBER ƃJ
Oracle ɁENUMBER ͂ƁE ^Cv B̃J ^Cv́AIvVƁENUMBER(P) āE NUMBER(P,S) ̌`ŐxƃXP[w ú»¹ú܁EC P NUMBER Ȍ`ŁEB̃J́AȐl 傫ȕ_܂łׂ̂Ă̐l^Cvú»´úxŕێł܁E
WebLogic jDriver for Oracle AvP[VJ̒lv𗋁 AWebLogic jDriver for Oracle ́AJ lv𗋁ꂽ Java ^ɕϊ܁EgetInt() 123.456 łƂlvꂽꍇARAl͊ۂ߁E܁E
AgetObject() \bh́ÁE Nú»€úԁEWebLogic jDriver for Oracle ́ANUMBER Ĵǂ̂悤Ȓlиx XƂȁE Java IuWFNg ú»�Eµ�Eú»�Eµ‚܁E܁E聒l 1 Integer ͂ƂĕԁEA123434567890.123456789 ̂悤Ȓl BigDecimal ͂ł̂ݕԁEB
J̒l̍ő吸x Oracle ú»Ší¹�E郁^f[^́EBBāAWebLogic jDriver for Oracle ́Aꂼ lɁEāAǂ̂悤ȁẼIuWFNg ú»°úԂ߁E镗v B܁E1 聂EResultSet ́ENUMBER JɑEgetObject() Ă畡 Java ̌^ ƂŁEl̃e[uׁ͂EInteger ĂƁEgetObject() āE A_Pʂ̃e[úE Double ŕԁEꁁu123.00v̂悤Ȓl Integer ͂ƂĕԁEBOracle ANUMBER ĺu1vƁu1.0000000000vú»ºúەʂ邽߂́E͒E܁E
C NUMBER JA܁E聓R x`苁EJ郃ł́A M̍E܂Oracle ̃^f[^́Ẽp[^hú»Œí³‰Coɒ邽߁AWebLogic jDriver for Oracle ̓e[u̒lɁEȁE R xƃXP[ɍ킹ēKEJava ȃIuWFNg ú»�Eµ�E
whCȍꍇɂ́ÁE GɂȁEBftHgł́AWebLogic ́Aw JDBC AvP[VvO鑂ɁADBMS f[^̃RtBO[V\ȁEResultSet ̍s ú»€úځE ANCAǵE úž© ǂ̐\́E BAWebLogic ł́ANCAgf[^ ú»€úΌ`ŗv邩Oɂ킩 ̂ŁAs Iú»�EµƒvtFb`āANCAg AvP[VɑMꂽf[^AResultSet ̂ꂩ 1 ̃JƓ^ɂȁEɂ܁EvtFb`gpú»¹úӁEAnumber ^ getObject() Ƀ\bhgpú»¹úӂ邱Ƃ͂ł܁EWebLogic Server gp WebLogic jDriver for Oracle ᧈí²ªAw肳ꂽJɕʁEJava ̌^ ú»�Eµ”\邩 B̌ʁAWebLogic ́AׂāEgreater-than-integer ̐l̃f[^ String `ú»°úڮŃvtFb`āAx Ȃ悤ɂ܁E
̏́Af[^ getInt()AgetFloat()AgetBigDecimal() ȂǂŗvꂽꍁE�AWebLogic JDBC NCAg AvP[Vł̃f[^擾ɂ͉e܁EWebLogic JDBC AString K 𓐌^ɕϊ邩 BAgetObject() \bh ú»€ú؏oꍇAWebLogic JDBC ́AvtFb`ꂽƁE String ú»�Eµ�E
wNCAg AvP[VŁEgetObject() ̂́EA2 w WebLogic jDriver for Oracle AvP[Vł́E悤ɁÉi܁E聃vtFb`ɁAJ f[^^݁E\ ԂŁjAڑvpeB weblogic.t3.cacheRows zeroi0jú»�E±‚ɐݒ肵āAWebLogic ł̍sLbVOItú»Œí³‚ɂ܁E
WebLogic JDBC JDBC-ODBC ƃubẂE
: ӂł́A2 whCoƁEJDBC-ODBC ăubWgpú»¹úӂāAWebLogic JDBC Ńx_̃f[^x[XɐځE@A p𗂢Ď܁E
: JDBC-ODBC ӃubWgpú»¹úӂāAG^[vCY JavaBean ú»¹úفEMicrosoft Access f[^x[XɃANZX邱Ƃ̓T|[g ܁E
ߎ菇 1. pbP[W̃C|[g
WebLogic JDBC JDBC-ODBC ŃubWgpú»¹úӁÉAȉ́A WebLogic JDBC ̃NXgpú»¹úӁEƁEimport pbP[WKvŁE
import java.util.*;
import java.sql.*;
import weblogic.common.*;
菁E2. T3Client ̍쐬
WebLogic JDBC NCAg̃RXgN^ 1 ͂́E ܁ET3Client NGXgú»ŒíºƒX|郁[g WebLogic Server ú»€úցEURL ̂ŁÉEAtry ubNł̃vÓEƂŁE
try {
t3 = new T3Client("t3://bigbox:7001");
t3.connect();
ڑsꍁE�Efinally CubN t3Client ŁEdisconnect() Ƀ\bh ú»€ú؏oKv B
ڑp[^ 𐂷 ́Ajava.util.Properties IuWFNggpú»¹úӂ܁EWebLogic Server DBMS ƂƂ̐ڑi2 wڑj 1 ɂEProperties ̃Zbggpú»¹úӁEWebLogic JDBC NCAgAWebLogic ServerA DBMS Ԃ̐ڑiwڑjɕʁEProperties ̃Zbggpú»¹úӂ܁E2 wProperties IuWFNĝ́Aw Property 1 ̂ƂĐݒ肳 Bw Properties IuWFNǵAConnection RXgN^́EĎgp iProperties ̐݁EցEׁjB
Properties dbprops = new Properties();
dbprops.put("user", "scott");
dbprops.put("password", "tiger");
Properties t3props = new Properties();
t3props.put("weblogic.t3", t3);
t3props.put("weblogic.t3.dbprops", dbprops);
t3props.put("weblogic.t3.driverClassName",
"sun.jdbc.odbc.JdbcOdbcDriver");
t3props.put("weblogic.t3.driverURL",
"jdbc:odbc:Oracle_on_SS2");
t3props.put("weblogic.t3.cacheRows", "10");
Class.forName("weblogic.jdbc.t3.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:weblogic:t3client",
t3props);
checkForWarning(conn.getWarnings());
́EŁEsł́Aڑmꂽ x_ŗĽx`Fú»Œí³ƒbNĂ܁Eȉ́AcheckForWarning \bh̃R[hŁẼ\bh́ASQLWarning IuWFNg ú»€úԂāEASQLStateAxbZ[WA f[^x[X x_̃G[ R[hɂẮE\܁E1 ESQLWarning ̃IuWFNgɕ̌x B
private static boolean checkForWarning (SQLWarning warn)
throws SQLException
{
boolean rc = false;
if (warn != null) {
System.out.println ("\n *** Warning ***\n");
rc = true;
while (warn != null) {
System.out.println ("SQLState: " +
warn.getSQLState ());
System.out.println ("Message: " +
warn.getMessage ());
System.out.println ("Vendor: " +
warn.getErrorCode ());
System.out.println ("");
warn = warn.getNextWarning ();
}
}
return rc;
}
f[^ւ̃ANZX
f[^x[X ^f[^ oú»¸úۂɂ́AgetMetaData \bhiConnection NXjgpú»¹úӂ܁ÉÉA o^f[^ɁEf[^x[XɂĂ̏ڍׁEĂ܁E
DatabaseMetaData dma = conn.getMetaData();
System.out.println("Connected to " + dma.getURL());
System.out.println("Driver " + dma.getDriverName());
System.out.println("Version " + dma.getDriverVersion());
System.out.println("");
Statement IuWFNggpú»¹úӂāAȒP SQL select ȃIuWFNg\zú»µúāEsAResultSet Ƀf[^ oú»¸úۂ܁EStatement IuWFNg ResultSet IuWFNǵAgI N烃[Y܁E
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM emp");
dispResultSet (rs);
rs.close();
stmt.close();
NǦʂ́AResultSet ú»€úԁEprivate 郁\bhŕ\܁EdispResultSet() \bh́AResultSetMetaData g ú»¸úe[ũJoo AResultSet ú»½úӃRecs ú»´úΕ\܁E
private static void dispResultSet (ResultSet rs)
throws SQLException
{
int i;
ResultSetMetaData rsmd = rs.getMetaData ();
int numCols = rsmd.getColumnCount();
for (i=1; i < = numCols; i++) {
if (i > 1) System.out.print(",");
System.out.print(rsmd.getColumnLabel(i));
}
System.out.println("");
boolean more = rs.next ();
while (more) {
for (i=1; i<=numCols; i++) {
if (i > 1) System.out.print(",");
System.out.print(rs.getString(i));
}
System.out.println("");
more = rs.next ();
}
}
SQLException ́AŁE ŁEȉɁAConnection Cú»Œí³“X^XāESQLWarning `FbNƁESQL ̃G[ƁE\܁E1 ESQLException ̂ɁESQL ̃G[܂܁E邱Ƃ B
catch (SQLException ex) {
System.out.println ("\n*** SQLException caught ***\n");
ex.printStackTrace();
while (ex != null) {
System.out.println ("SQLState: " +
ex.getSQLState ());
System.out.println ("Message: " +
ex.getMessage ());
System.out.println ("Vendor: " +
ex.getErrorCode ());
ex = ex.getNextException ();
System.out.println ("");
}
}
ׂ̑̂Ă̗OኂɊւẮAPɁAfobOړIŃX^bN g[Xo ú»½úӁE
catch (java.lang.Exception ex) {
ex.printStackTrace ();
}
ŁE菁EڑúƃIuWFNg̃N[Y
KɃN[Abvú»ªúڗ邽߁AKAfinally ubNŐځEú»�Eµ�AT3Client ̐ځEú»€úՁE
finally {
if (conn != null)
try {conn.close();} catch (Exception e) {;}
if (t3 != null)
try {t3.disconnect();} catch (Exception e) {;}
}
߈ȉ́A ־R[ĥ܂Ƃ߂ŁE
package examples.jdbc.odbc;
import java.util.*;
import java.sql.*;
import weblogic.common.*;
class simpleselect {
public static void main (String args[]) {
String url = "jdbc:odbc:Oracle_on_SS2";
String query = "SELECT * FROM emp";
T3Client t3 = null;
Connection conn = null;
try {
t3 = new T3Client("t3://bigbox:7001");
t3.connect();
Properties dbprops = new Properties();
dbprops.put("user", "scott");
dbprops.put("password", "tiger");
Properties t3props = new Properties();
t3props.put("weblogic.t3", t3);
t3props.put("weblogic.t3.dbprops", dbprops);
t3props.put("weblogic.t3.driverClassName",
"sun.jdbc.odbc.JdbcOdbcDriver");
t3props.put("weblogic.t3.driverURL", url);
t3props.put("weblogic.t3.cacheRows", "10");
Class.forName("weblogic.jdbc.t3.Driver").newInstance();
conn = DriverManager.getConnection
("jdbc:weblogic:t3client",t3props);
checkForWarning(conn.getWarnings());
DatabaseMetaData dma = conn.getMetaData();
System.out.println("Connected to " + dma.getURL());
System.out.println("Driver " + dma.getDriverName());
System.out.println("Version " + dma.getDriverVersion());
System.out.println("");
// hCo SQL ɕ𑗐M邽߁Ebr> // Statement ɃIuWFNg
Statement stmt = conn.createStatement();
// Nú»´úσG𑗐MāAResultSet IuWFNg
ResultSet rs = stmt.executeQuery(query);
// ú»´ú؋ʃZbg炷ׂẮEs\
dispResultSet (rs);
// 錋ʃZbgƁE
rs.close();
stmt.close();
}
catch (SQLException ex) {
// SQLExceptions āA IȃG[ \
System.out.println ("\n*** SQLException caught ***\n");
ex.printStackTrace();
while (ex != null) {
System.out.println ("SQLState: " + ex.getSQLState ());
System.out.println ("Message: " + ex.getMessage ());
System.out.println ("Vendor: " + ex.getErrorCode ());
ex = ex.getNextException ();
System.out.println ("");
}
}
catch (java.lang.Exception ex) {
// 鑼̗Oኂ̏ꍇ́AP StackTrace ɂo
ex.printStackTrace();
}
finally {
if (conn != null)
try {conn.close();} catch (SQLException sqe) {}
if (t3 != null)
try {t3.disconnect();} catch (Exception e) {}
}
}
private static boolean checkForWarning (SQLWarning warn)
throws SQLException
{
boolean rc = false;
// SQLWarning Iû¸œí³ƒuWFNg ú»€úځA
// warning messages. Note that there could be
// ̌x ɂȁEāE邱ƂɒӁEbr>
if (warn != null) {
System.out.println ("\n *** Warning ***\n");
rc = true;
while (warn != null) {
System.out.println ("SQLState: " + warn.getSQLState ());
System.out.println ("Message: " + warn.getMessage ());
System.out.println ("Vendor: " + warn.getErrorCode ());
System.out.println ("");
warn = warn.getNextWarning ();
}
}
return rc;
}
private static void dispResultSet (ResultSet rs)
throws SQLException
{
int i;
ResultSetMetaData rsmd = rs.getMetaData();
int numCols = rsmd.getColumnCount();
for (i=1; i<=numCols; i++) {
if (i > 1) System.out.print(",");
System.out.print(rsmd.getColumnLabel(i));
}
System.out.println("");
boolean more = rs.next();
while (more) {
for (i=1; i<=numCols; i++) {
if (i > 1) System.out.print(",");
System.out.print(rs.getString(i));
}
System.out.println("");
more = rs.next();
}
}
}
JDBC ̃vpeB 𐂷邽߁EURL ̂̎g T3 hCo̎g
URL @\
URLiuniform resource locatorj́Albg[N R \[XT𒂵o߂̃c[ŁEJDBC dlł́AJDBC ̉^pɍہEURL āEú»´úέgp ܁EBEA ł́AׂĂ̐iŁEāA܂݁EURL ̃KChCiwww.w3.org Q jú»¸úہEP eɏ]BĂ܁E
BāAWebLogic ił́AWebLogic JDBC ڑ̍ۂɁAURL gpú»¹úӂĕKvȃp[^w ú»¹ú܁E
WebLogic URL ̍\
Properties IuWFNg URL ƂɁEڑ̎w
WebLogic JDBC h胃CóANCAgƑΏۃf[^x[XƂ̊ԁEJDBC ŐڑJú»¨úέ߂̃vpeB java.utils.Properties Iuú»Œí³ƒWFNggpú»¹úӂĐݒ肵܁E܁EJDBC dlŐ־ ɁAURL gpú»¹úӁEJDBC ăhCow û´ˆí²±ƁE܁EProperties IuWFNg URL Ƃ́ADriverManager.getConnection() \bh܁EDriver.connect() ̓\bh́EȁEB
: DriverManager.getConnection() ӂ͓\ჃbhȂ̂ŁAR ł́AAvP[VnO錴 ú»˜í²�EB̂߁Ã}jÃR[h ־悤ɁADriver.connect \bhgpú»¹úӂ邱ƂúԊ߂܁E
̃f̒ʁE͈ȉ̂ƁEB
[UpX[hȂǂ́Ew û´ˆí²½߁Ejava.util.Properties ̃IuWFNg ú»€úفE
[h java.sql.Driver ăIuWFNgɃLXg JDBC h郃CõNXw ú»¹úAClass.forName().newInstance() \bh ú»€ú؏o܁E
Driver.connect() \bhgpú»¹úӂĐځEú»€úفẼ\bhɂ́A JDBC ăhCo URL ̂ƃvpeB̃Zbgw ú»¹úE
Properties IuWFNg AClass.forName().newInstance() ú»´ú̓\bh ú»€ú؏oAڑIuWFNg sú»´úΤR[h ú»€úԎ܁E
Properties dbprops = new Properties();
dbprops.put("user", "scott");
dbprops.put("password", "tiger");
dbprops.put("server", "DEMO");
2 wڑp̃[UApX[hA T[oi[ú»©úЁEProperties I郃uWFNǵAw WebLogic JDBC ڑp̃p[^ 𐂷邽߂̕ʁEProperties ̃IuWFNg̈ꕔƂȁEB
Properties t3props = new Properties();
t3props.put("weblogic.t3", t3);
t3props.put("weblogic.t3.dbprops", dbprops);
t3props.put("weblogic.t3.driverClassName", "weblogic.jdbc.oci.Driver");
t3props.put("weblogic.t3.driverURL", "jdbc:weblogic:oracle");
2 wڑƑwڑ̂ǁE ADriver.connect() C\bh ú»€ú؏o JDBC ĐڑCú»Œí³“X^X ɃhCoɓn B̃\bhɂ́AURLij java.util.Properties IuWFNg 2 ́Ew肵܁E
Driver myDriver = (Driver)
Class.forName("weblogic.jdbc.t3.Driver").newInstance();
Connection conn = Driver.connect("jdbc:weblogic:t3", t3props);
URL gpú»¹úӁEWebLogic JDBC ڑ̎w
Java J芔̒ɂ́ASybase PowerJ ̂̂悤ɁAProperties IuWFNgú»Œí¶�[Uƃf[^x[Xw û´ˆí²½߂Ɏgp ̂ BJɑÉADriverManager.getConnection() \bh̍ŏ́EĎgp URL T[oAweblogic.t3 vpeB ú»€úւāAWebLogic JDBC ڑsú»´úΤ߂ɕKvȃp[^ú»‹í·‚ׂĎw肷K镗v B
WebLogic ł́APowerJ ̂悤ȊEú»�E±‚ƂāARFC 1630 X^C̃NG URL \zú»µú邱ƂŁAWebLogic JDBC ڑɕKvȁEú»‹í·‚ׂĎw ɂĂ܁E
WebLogic URL ̍\͈ȉ̂ƁEBŎāE̓vpeB̖OŁÃvpeBɎw肷l钂̗Ⴊ܁E
jdbc:weblogic:t3 (with JDK 1.1)
URL ̐擪ŁAWebLogic JDBC hCo URL ̂w ú»¹úi p ́AWebLogic JDBC hCo URL ̂́uURL ̃XL[vƌĂEjB
݁AWebLogic JDK 1.0.2 ͂T|ú»Œí³�[gĂȂƁEɒӂāE
WebLogic JDBC hCo URL ̂ɂ́A^╁E?j𑱁E vpeBƒl̃yA𑱂܁EyȀꍇ́AԂɃApThi&j i ûLjí²�A 蕶̐F ú»�EµŽĂ܂jB܂́Au?v́E A ͈قȁE锈ӂ̏Ŏw ܁E
weblogic.t3.serverURL=t3://localhost:7001
WebLogic Server URL ̂ŁE
weblogic.t3.driverURL=jdbc:weblogic:oracle:DEMO
2 wڑp JDBC hCo URL ̂ŁE̍\ɂ́AuservervvpeBƂĐݒ肷 Kᧉíµ—v BƂAjdbc:weblogic:oracle:DEMO ́AOracle f[^x[Xp WebLogic JDBC ̃hCozXguDEMOvɑ݁EƂퟺú҂܁E
weblogic.t3.driverClassName=weblogic.jdbc.oci.Driver
2 wڑp JDBC hCõNXŁENX́Ahbg\L̊SpbP[WłȁEȁEB
weblogic.t3.cacheRows=10
WebLogic Server LbVsᣈí½‚̐ŁE
weblogic.t3.connectionPoolID=eng
ڑv[ ID ̂ŁE ID ̂́Aweblogic.properties t@Cɓo^ȁEȁEB v[ JDBC ڑgpú»¹úӁEAURL ɂ͐ڑv[ ID ̈ȊÓE͕svŁEڍׂɂẮAwWebLogic JDBC vO~O KChxŐڑv[̐־Q ú»¸úہE
L㋈ȊOɁEOȗ\ȃvpeB B ̃vpeB̏ڍׂɂẮAwJ҃KChx́uڑpvpeB̐ݒv聂Q ú»¸úہE
́EAuDEMOvƁEOracle f[^x[Xɐڑ邽߁EURL ̂w ú»¹úEڑɂ́AzXgutoyboat.toybox.comṽ|[g 7001 gpē삷 WebLogic Server gpAcacheRows vpeB 25 ͂ɐݒ肵܁ÉÉAf[^x[Xɐڑ邽߂́uusernamev upasswordvvpeB Properties IuWFNgŐݒ肳ꂽƂO 𑒂Ă܁EԂŎu?v u&v́AURL ł͓N Ӗퟹúق܁E₷邽߂ɁÁE URL ́Eú»�Eµ�sɎāEA ۂɁE1 ͍śEú»�E²�EB
jdbc:weblogic:t3?
weblogic.t3.serverURL=t3://toyboat.bigbox.com:7001&
weblogic.t3.driverClassName=weblogic.jdbc.oci.Driver&
weblogic.t3.driverURL=jdbc:weblogic:oracle:DEMO&
weblogic.t3.cacheRows=25
URL ł́A镔Ɏw肳ꂽ ú»€úցȂ̕Ɏw肷ׁE𐄑邱Ƃł܁E̐𗘗p AURL ú»€úւ܁E
ƂAURL ̐擪iWebLogic JDBC hCo URĹjɃf[^x[X x_ DBMS zXg 𓂁AɎ悤ɁAweblogic.t3.driverURL w Kû´‰íµ—vȂȁEB
jdbc:weblogic:t3:oracle:DEMO
URL ́ELú»€úۂ悤Ȍ`ɂł܁E
jdbc:weblogic:t3?weblogic.t3.driverURL=jdbc:weblogic:oracle:DEMO
܁EWebLogic jDriver ̂ꂩ̃hCogpú»¹úӁÉAhCõNX ú»¼úαƁE܁EURL ̐擪iL㋂́EQƁjA܂̓vpeB weblogic.t3.driverURL 琁E‚邩 Bȉ̕\́AURL Ɏw肳ꂽx_ɁAǂWebLogic jDriver ̃hCoΉ邩ú»ºú҂܁E
|
URL |
Ήh郃Co |
|
|
|
|
|
|
|
|
|
Ő־ƂퟥúڗpāA gB URL Aú»¨úΉ̂悤ɂȁEB
jdbc:weblogic:t3:oracle:DEMO?
weblogic.t3.serverURL=t3://toyboat.bigbox.com:7001&
weblogic.t3.cacheRows=25
URL ɋLq ꕶ
URL Ɏw肷镶́AUS-ASCII ZbgɑO郃tBbN\\ȁEɁE B Iɂ́AA ` Z ̉pi啶ƏjA0 ` 9 ̐̑A$-_.+!*'()" Ȃǂ̓Nꕶ܂܁EBȂ́̕AKE2 ȁE16 ̐ii0123456789ABCDEFj̃R[hɒuK镗v i擪ɂ́u%vtj遁B
Nꕶ̒ɂ́AURL ŗ\ɂȁEāÊ i; / ? : @ = & ȂǁjB ̕ANgp ́A16 ĩR[hɕϊȁEȁEB
AɎ́AWebLogic URL ł͗\ƂȁEĂ܁E ̕ӯlɁAgp ́A16 ĩR[hɕϊȁEȁEB
%26 (&)
%3D (=)
%3F (?)
%2F (/)
%3A (:)
IDEiEBU[hj̎g
URL ASybase PowerJ ̂ȂǁEIDÉiJBEBU[hƂ¢jɂgΗpł܁ENX URL SȌ`Ŏw肵ȁE�EµȁEIDE gpú»¹úӁÉAWebLogic JDBC ̃hCõNX ú»€úԂ悤ɁE܁E
JDBC Driver:
weblogic.jdbc.t3.Driver
ԂŎu?v u&v́AURL ł͓N Ӗퟹúق܁E₷邽߂ɁÁE URL ́Eú»�Eµ�sɎāEA ۂɁE1 ͍śEú»�E²�EB́EAPowerJ f[^x[X EBU[h URL ŁE
Data Source URL:
jdbc:weblogic:t3?
weblogic.t3.serverURL=t3://toyboat.bigbox.com:7001&
weblogic.t3.driverClassName=weblogic.jdbc.oci.Driver&
weblogic.t3.driverURL=jdbc:weblogic:oracle:DEMO&
weblogic.t3.cacheRows=25
|
|
|