ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ꏃz[   |     WebLogic JDBC t3 hCo   |   O   |   ցE/font>   |   ֖ځE/a>   |     |   PDF

WebLogic JDBC T3 hCoi񐄏j̎g

 

߂ł́Aȉ̓eׂŔ񐄏ɂȁE WebLogic JDBC T3 hCoɂ‚Đ־܁E

 


T3 h㉃Co̔񐄁E/p>

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

\1-1 񐄏ɂȁE T3 hCõ\[X

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()

DriverManager.getConnection() ͓\ჃbhȂ̂ŁAR 󋵂ł́AAvP[VnO錴 E遂̂߁ADriverManager.getConnection() ́E Driver.connect() \bhgpӂ邱Ƃ𐄏B

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 h񃃉CogpӁEA WebLogic JDBC 2 wh񑃃Co 2 w‹ŏ\ɓ삷邱ƂmFЂāE WebLogic JDBC ̃fvCT|[g B

WebLogic JDBC ̃A[LeN`

WebLogic JDBC ̃A[LeN`́AWebLogic ̑w‹̈ꕔƂā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҃KChxi񐄏j́uWebLogic NCAg AvP[V́Ev QƂāE

WebLogic Server DBMS ƊԂ̊֌WBWebLogic Server ́AT3Client ɁEBāAJDBC hCoƃx_ CugpӁE1 Â܂͕̃f[^x[XƂ̐ځEEEWebLogic Server ́AJDBC hCooRӂă[g DBMS ƁA JDBC ̃hCoɁEČ܁E遃x_ŗLCu܁EODBC ͂̂ꂩƒʐM܁EWebLogic Server DBMS ƊԂ̐ڑu2 wEڑvƂĂ܁EWebLogic Server ͕̃f[^x[XɐځE1 ăNCAg NGXgɉ邱ƁE1 B‚̃f[^x[Xɐڑĕ̃NCAg̃NGXgɉ邱ƁE܁E

܁EWebLogic JDBC NCAgƃNCAgANZXf郁[^x[XƁEIȊ֌W̊ԂɁAWebLogic Server Ƃ  B̊֌ẂAJDBC ڑIuWFNgɁEĒ`苁EBJDBC ڑ̍쐬 gp @͂EBWebLogic JDBC NCAǵAR vpeB 𐂵AK؁EJDBC ȃ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.xjE‹Ł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

  1. JDBC hCoo^E Java R郁[h XEE

  2. JDBC hCo URL ́EāEJava R郁[h XEE

  3. CLOB ܁EBLOB ̓f[^^gpӁEAsLbV̓T|[g Bs񁍃LbV𖳁E ́AR[hŎ̐ڑvpeB 𐂵܁E

    weblogic.t3.cacheRows=0

  4. R[h RpCفE

 


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 EE ̊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ł͐־Ă܁E񁂽ABEA ̂̑̃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 CX^X T3Client N郃XƁAWebLogic JDBC WebLogic ̃t[[Nŋ@\邽߂Ɏg T3 ŗL̃IuWFNg Ă܁ET3User NX±̃pbP[WɁEĂ܁ET3User IuWFNǵA[U pX[h ZLA WebLogic ServerA‚܁E胃NZX邽߂ɔF؁EvȃT[oɓn߂Ɏg ܁E

weblogic.jdbc.t3.Connection

WebLogic ł́AT3Client ڑg cacheRows ΃vpeBZbgŁE JDBC ɂg ܁EWebLogic API ̃t@X }jAł͂̊gɊւĂ̂ݐ־ AJDBC 聂Ɋւ邻̑́Eɂ‚ẮASun ̃TCgQ ہE

java.util.Properties

java.util.Properties IuWFNǵAJDBC ڑIuWFNg\z΂邽߂́EĎg ܁E

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@

  1. 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ΤꍁEAweblogic.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

  1. WebLogic JDBC hCo NXւ̎QƁEweblogic.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 EESR[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ӁEEĐ־Ă܁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 AvP[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 EE try ubN finally ƃubNŎgp B

܁E߁ET3Client ݁Estrong>gpӂȂꍇ́Atry ubN̑O T3Client ɃIuWFNg EE[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 ڑNGXgX TCP |郁[gKvŁEURL ͎̃tH[}bgŕ\ B

accessProtocol://WebLogicServerURL:port

accessProtocol ́AuT3Client AvP[V̍쐬vɋLځEv郃gR̂ꂩŁEt3i\AdMA񓯊A⻂đo ̐ڑɁEW T3Client ANZXjAt3siSSL ŔF؁EsΤ T3Client ANZXjAhttpigXt@CAEH[p HTTP ̃glOɁE T3Client ANZXjȂǂŁE

WebLogicServerURL ́AY}郃VœK؂ȔCӂ̕@ ߂܁Eport ́AWebLogic Server T3Client ̃OC NGXgXā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 ĖRXgN^ɒ񋟂܁EɁE܁E

t3 = new T3Client("t3://bigbox:7001", "mike");

ėp”\ȃ[NXy[X ѕ@ AT3Client ̃ftHg̃[NXy[X String ID ́EEƂŁ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 ̃\[X𑦎N[Abv܁E ̒l T3Client.DISCONNECT_TIMEOUT_NEVER Β肵āA^CAEg𖳁Eɂ邱Ɓ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

菁E3. ڑpvpeB̐݁E/p>

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 EAꁁ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 wEڑpƑwڑp 2 ̂‚̃XgɕāEB

2 wڑpɐݒ肷v郃peB

user

DBMS ɃANZX邽߂̃[U

password

DBMS ɃANZX邽߂̃pX[h

server

DBMS ̖O.server vpeB́AwvpeB weblogic.t3.driverURL ŁAURL ̈ꕔƂăhCo URL ̂́EljBĐݒ肷邱ƂŁE܁EƂ΁AV2 GCAXuDEMOvgpӁEOracle DBMS ꍇAuweblogic:jdbc:oracle:DEMOvƂȁEB

db ܁Edatabase

f[^x[X̖OBJDBC hCoɁEĂ͕K{ŁE

IvVŐ݁E 2 w鑐ڑp̃vpeB  Bȉ̃vpeB́E1 ̂‚ŁE

weblogic.oci.cacheRows

iOracle ̂݁jOracle ztF񃃃b`̃T|[gBResultSet.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[hobt@O邽߂̑wLbṼTCY𒲁ÊŁE ̃vpeBɂ͊֘A 񂪁AɎgp Ƃ  B

wڑpɐݒ肷v郃peB

weblogic.t3 ܁Eweblogic.t3.serverURL

weblogic.t3 T3Client IuWFNgɐݒ肵܁ET3Client WebLogic Server ́EƎ̃ReLXgفEāE聁ẼIuWFNgɁEĒ`苁Eێ炳 BvOŖI T3Client ȃIuWFNgKv𕗂ƁEÃvpeB 𐂵܁E

߁ET3Client ݂gpӁEÃvpeB͐ݒ肵܁E/strong>B ᤁEAvpeB weblogic.t3.serverURL 𐂵܁E Aߍ݃NCAgځEWebLogic Server w肵܁E

weblogic.t3.dbprops

2 wڑp properties ̃IuWFNggwڑp̃vpeBɂȁEB

weblogic.t3.driverClassName

WebLogic Server DBMS ƂƂ̊ԁEJDBC ̃hCõNXBǁEJDBC ̃hCõNXł©܂܁E񁂱̃vpeBɁEZb񃃃ǵAWebLogic Server 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

weblogic.t3.driverURL

WebLogic Server DBMS ƂƂ̊ԁE2 ̑w JDBC hCoURĹiserver vpeBƂĐݒ肳 Ȃꍇ́AIvVŁAf[^x[X T[ojB URL ̂́Aweblogic.t3.driverClassName vpeBɃNXw肳 h郃CóEłiڍׂɂ‚ẮAuURL p𗂢 JDBC ڑvpeB̐ݒv聂Q ۂjB̃voC_ɁEĐݒ肳 AWebLogic Server DriverManager.getConnection() E\bh̍ŏ́EĎgp B́ÉAWebLogic jDriver for Oracle g Oracle ΃f[^x[XuDEMOvɃANZXĂ܁ET[o EEꍇAVXe͊‹ϐiOracle ̏ꍇ ORACLE_SID́jT𒂵܁EURL ͑啶/ ׂĎʂ܁EURL R񁂋 B

WebLogic 2 wlCeBu hCo URL ͈̂ȉ̂ƁEB

weblogic.t3.connectionIDiȗ”\j

Ot𕂯LbV JDBC ڑBT3Client WebLogic Server ɐڑĂ邩g莗pŁEHashtable of Connection I郃uWFNg T3Client [NXy[XΒɍ쐬ł܁E ̃LbVڑgpӁEAT3Client xŁEJDBC mӧł܁ELbV connection ID ɂ́AŁEJDBC ɐڑmӧƂɎgpvpeBׂĊ܂܁E܁Ê߁AgetConnection() \bh́E connection ID Ăw Ajava.util.Properties IuWFNgw肵̃vpeB́Aconnection ID WebLogic Server ɑ݂Ȃꍇɂgp B

weblogic.t3.cacheRowsiȗ”\j

LbVs鍂̐BIvVł邱̃vpeB́AT3Client ƃf[^x[XƂ̊ԁE1 ́EENCAgɃLbVs鍂́E𐂵܁EsLbV ANCAg̐\ ܁ẼvpeBgpӁEAAvP[ṼLbV E܁E

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[hNCAgɒړ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 oOAڑIuWFNgł̃vpeBZbg邱ƂɁEāAcacheRows vpeBNĜтɒł܁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 ̔ztF񃃃b`@\ɃANZXł܂i̋@\̏ڍׂɂ‚ẮAWebLogic jDriver for Oracle p̊J҃KChQ ۂjB̃vpeB weblogic.t3.cacheRows ͂Ɉˑ܂񂪁A҂Ԃƃf[^x[Xׂ̕𑊎E邽߂ɁAvpeB ԎgpĂ©܂܁E

weblogic.t3.blobChunkSizeiȗ”\AWebLogic jDriver for Oracle Ŏgpj

WebLogic WebLogic ƃNCAg̊ԁEBLOB ̃Xg[p̃obt@ TCY `EẼvpeB́A2 w Oracle hCo vpeBƘAĎgp B

weblogic.t3.nameiȗ”\j

name vpeBł͐ڑ̖O 𐂂Bڑ́AConsole ManagedObject ̕\ŁEB

weblogic.t3.descriptioniȗ”\j

description vpeBł͐ڑ̊ȒPȐ־ 𐂂B̐־́AConsole ManagedObject ̕\ŁEB

Ƃ΁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ʏÃvpeBȂƂɎgp܁E

weblogic.t3.connectionPoolIDiweblogic.t3 vpeBƂgpj

R T3User ̃ANZXpɍ쐬ꂽ JDBC ڑ̃v[ەʂ܁EڍׁER[h ‚ẮAuڑv[̎gv QƂāEv[ gpӁÉAWebLogic Server NɁiweblogic.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

߁ET3Client ݂̐݁E/p>

WebLogic JDBC v胃O A̖ړIŖI T3Client ȃIuWFNgKv𕗂ƂȂꍇ́A߁ET3Client ݂gpӂł܁E߁ET3Client ݂́AEAڑ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 Ƃ̃ZLeB΁EAT3User Ƀ[UƃpX[h 𐂷K镗v ցEET3Client ݂gpӂł܁EɁE܁ÉEAweblogic.properties t@CɁAT3UserudevelopmentvÃv[ ڑureservevE鋖‚ƂƁ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

菁E4. DBMS Ƃ̐ځE/p>

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 K𒕗v B2 wڑ̃NX URL ́Ałɐ־悤 Properties ɃIuWFNgŐݒ肵܁E

WebLogic JDBC NCAgAWebLogic ServerA DBMS Ԃ̐ڑ̏ꍇAwځE WebLogic JDBC hσCõNX URL EE

WebLogic JDBC hCõNX́AClass.forName().newInstance() \bhNX 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 ΁EE݂܁EWebLogic Server ́AxgΗpŁEɁAڑJ΢܂܂ɂ܁E

ĎgpŁE 2 ́E BOt𕂯LbV JDBC ڑƐڑv[ŁE

LbV JDBC ڑ͍쐬Aꁎgp A灁EgpŁE T3Client ɂ̃[NXy[XɊi[ BJDBC ڑLbVĂƁAڑퟧٓx 邽߂ׂ̕𔭐ɍς݂܁EALbVڑ́AI ̓f[^x[X \[X E邱ƂɁE BJDBC ڑLbV ȂŜ́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ꍁEAڑ̍ő吔܂Ńv[𑝉Bł܁E܁EOt𕂯v[Ƀ[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

L񁃃bV 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 EEWebLogic 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

  1. T3Client فE

  2. WebLogic Server ɐڑ܁E

  3. ̃NCAgp̃\tgڑ퟽؃^CAEg𖳁Eɂ܁E

  4. T3Client ̃[NXy[Xɖ߁E悤ɁA[NXy[X ID ́EEET3Client IuWFNgV𐂵E ́A ăNCAgɖOiumikevȂǁj 𒂱ƁE܁E

    T3Client t3 = new T3Client("t3://localhost:7001");
    t3.connect();
    t3.setSoftDisconnectTimeoutMins(T3Client.DISCONNECT_TIMEOUT_NEVER);
    String wsid = t3.services.workspace().getWorkspace().getID();

ɁAgetConnection() \bhumyconnvEƂ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 EE

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() \bhumyconnvEƂOw ΌĂяoƂɁEāAOracle f[^x[Xւ̐ځEJق܁EڑɕKvȂׂẴp[^͂łɑ݂Ă܁ECӂ̃f[^x[Xs JDBC ΐڑIuWFNg EE

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񋟂 AEŁE܁EȗłȁE͕K{ƋL ܁EK{̒l񋟂 BꍇAWebLogic Server ͋NɗOኂ𑗏o܁E

̃vpeB́EȒPȐ־ Ԏ܁E

name

iK{jڑv[̖OB̃v[ JDBC ɃANZX AT3Client NXLqہEɂ̖Ogpӂ܁E

URL

iK{jWebLogic Server DBMS ƂƂ̊Ԃ̐ڑɎgp JDBC 2 w鑃hCo URĹBWebLogic jDriver ̂ꂩA܁E ͑wڑ‹ŃeXgς݂̕ʁEJDBC ̃hCoł©܂܁EURL 񁂂ẮAgp JDBC h郃Cõ}jAQ ہE

driver

iK{jWebLogic Server DBMS ƂƂ̊Ԃ̐ڑɎgp JDBC 2 w鑃hCóEpXB pXɂ‚ẮAgp JDBC h郃Cõ}jAQ ہE

loginDelaySecs

iȗ”\jf[^x[Xւ̐ڑJέ߂̎s̊ԊuibjBf[^x[XɁEẮA̐ڑNGXgZԊuŌJ ƏłȁE  B̃vpeBgpӁEAf[^x[X T[ȍǂ‚悤ɁÅԊu邱Ƃł܁E

initialCapacity

iȗ”\jv[̏TCYチB̒lݒ肳 ȂꍇAftHgl capacityIncrement ͂ɐݒ肳 l钂ɂȁEB

maxCapacity

iK{jv[̍őT僃CYB

capacityIncrement

iK{jv[̗eʂ𑝉BT郃CYBinitialCapacity capacityIncrement ́AJava Vector ̂悤ɓ삵A āiucapacityvjA聃v[ maxCapacity ̂܂ŁAKvɁEcapacityIncrement ÑB B

allowShrinking

iȗ”\A3.1 瓱j v[v 悤BꂽAぁETCYɖ߂ǁE𐂵܁ẼvpeB true ̏ꍇAshrinkPeriodMins 𐂵܁Eݒ肵Ȃꍇ́AftHg 15 ŕɂȁEBallowShrinking ͉ʌ݊̂߁AftHg false łɐݒ肳 B

shrinkPeriodMins

iȗ”\A3.1 瓱j v[v 悤BꂽAぁETCYɖ߂܂ł̕B̃vpeB́AallowShrinking true ̂Ƃgp܁Eshrink period ̃ftHgl 15 ͕ŁAŏl 1 ͕ŁE

testTable

irefreshTestMinutesAtestConnsOnReserveA܁EtestConnsOnRelease ́E𐂷 ɂ̂ݕK{B4.0 瓱j v[ ڑ́Es”\eXg邽߂Ɏgpf郁[^x[X e[u̖OBNG select count(*) from testTable eXgɎgp BtestTable ́AK ݁E̐ڑ̃f[^x[X [UANZXŁÊłȁEȁEB 񁂂 Ef[^x[X T[óESQL ́EKفAe[u XL ܁E AtestTable BAsEȂi܂͂܁EȂje[u̖Oɐݒ肷邱Ƃ͗LvŁE

refreshTestMinutes

iȗ”\A4.0 瓱j vpeB́AtestTable vpeBƘAāAv[̐ڑ̎tbVL 𗌂܁Eڑv[̊egpڑ́Aw肳ꂽԊuŊȒPȃNG sαƂɁEăeXg BeXgs Aڑ̃\[X͔j A BĐVڑ쐬 B

tbVL 𗌂 ́ArefreshTestMinutes eXgEE̕ɐݒ肵܁Eŏl 1 ͂ŁE refreshTestMinutes l 𐂵ꍇAl̓ftHg 5 ŕɂȁEB f[^x[X e[ueXgɎgp ́AtestTable փf[^x[X e[u̖Oɐݒ肵܁EtbV@\L 𗌂 ́ArefreshTestMinutes testTable Ƃ́EvpeB 𐂵ȁEȁEB

testConnsOnReserve

iȗ”\A4.0.1 瓱jtrue ݒ肷 AWebLogic Server ́Av[ ڑ̃eXg sځE灃NCAgɓn܁EeXg s ANCAg΃NGXgɉăv[ 𒂂Ɏ኱ԁEɁEANCAg͕KL ځE ΂ł܁E̋@\gpӁÉAtestTable p[^ 𐂷K镗v B

testConnsOnRelease

iȗ”\A4.0.1 jtrue 灂ɐݒ肷 AWebLogic Server ́Aڑv[ɖ߂OɐڑeXg܁Ev[ ׂĂ̐ڑłɎgp A聃NCAgځE@EEANCAg̑ҋ@Ԃ͐ڑeXg ኱ȁEB̋@\gpӁÉAtestTable p[^ 𐂷K镗v B

props

iK{j[UApX[hAT[oȂǂ́Af[^x[Xɐڑ邽߂̃vpeBB̃vpeB́Agp 2 w JDBC 鑃hCoɁEĒ`苁E BDBMS ւ̐ڑɕKvȃvpeBɂ‚ẮAgp JDBC h郃Cõ}jAQ ہE

allow

̑́A3.0 ŕ] BEɐ־悤ɁAureservev uresetvp[~bVg ΐڑv[ւ̃ANZX 𐂵܁E

́EAWebLogic zzLbgɕt weblogic.properties ̃t@C B ŁA3 ET3UseŕiGuestAJoeAJilljANZXłueng遁vƂO̐ڑv[ فÉEŁE4AŁE10 Oracle f[^x[XցEJDBC ̐ڑAEEUuSCOTTvApX[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 񂗂ŁA󔒂̂܂܂ɂĂāÉ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ڑ́Ev[𖳁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 `EAueveryonevO[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.JdbcServicesvbNAbv܁É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[݁EAE͎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[EOɐݒ肵܁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āEA𕁃NCAgځ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

ҋ@𖳁E ́ADriverManager.getConnection() ɓn Properties IuWFNg weblogic.t3.waitForConnection ̃vpeBufalsevEɐݒ肵܁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);

ڑv[̊ǁE/p>

weblogic.jdbc.common.Pool C^tF[X weblogic.jdbc.common.JdbcServices ƃC^tF[X́Aڑv[ A ΊցE 񂓾邽߂̃\bh EE\bh̖ړI͈ȉ̂ƁEB

v[ɊցE 񂓾

weblogic.jdbc.common.JdbcServices.poolExists

weblogic.jdbc.common.Pool.getProperties

poolExists() \bh́Aw肳ꂽO̐ڑv[ WebLogic Server ɑ݂邩ǂ𒲂ׂ܁Ẽ\bhgpӁEAIڑv[łɍ쐬 邩ǂ𒲂ׁAE铮Iڑv[ɌŗL̖Ot𕂯邱Ƃł܁E

getProperties() \bh́Aڑv[̃vpeB ځE

ڑv[́E/p>

weblogic.jdbc.common.Pool.disableDroppingUsers()

weblogic.jdbc.common.Pool.disableFreezingUsers()

weblogic.jdbc.common.pool.enable

ڑ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

weblogic.jdbc.common.Pool.shrinking

ڑv[́Av[ ڑ́Eő吔 ` AEvpeBiinitialCapacity 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[񁐒~

weblogic.jdbc.common.Pool.shutdownSoft

weblogic.jdbc.common.Pool.shutdownHard

̃\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[ɕԁÉEEā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

weblogic.jdbc.common.Pool.reset

weblogic.jdbc.t3.Connection

ڑv[́A IɁA邢͐ڑ\ EE 𕂂ɐڑeXg Ƀ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ꍁEAv[ ׂĂ̐ڑ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[ É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 邩萬׋E؁E郃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();
@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);

@try {
@ 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

weblogic.jdbc.common.JdbcServicesDef

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 eXgAtbV邱Ƃł܁E

v[Zbg K؂Ȃ̂́AR ꍁEE肳 B̋@\́A[U vÕ[`ƂĎgpł܁E Aᤈڑv[̃ZbgKvɂȁÉADBMS _EāAv[ ځEss”\ɂȁEꍁEEDBMS AbvĎgp”\ɂȁEƂmFЂO鑂Ƀv[Zbg悤ƁEAOኂo Bv[̃ZbǵAǗLفE[U s ʂȁEB

ڑv[Zbg ́A‚̕@⪁EB

R}hC炱̕@ gƂ͂߁EɂȂµ B 񁂂ANɐ־ ɃvOgpӁEI擂ȕ@⪁EBAdmin R}h̏ڍׂɂ‚ẮAWebLogic wǗ҃KChx́uWebLogic Server ̉^pƃeiXvQ ہE

ŁEP[X́AsׁEłѽȁEA̔ʁAŁE2 ̂‚̕@ _ BTv R[hgpӂāAreset() \bh̎gp@ ־܁E

ȉ́Areset() \bhgpӂv[̃ZbǵEB

  1. try ubN̒ŁADBMS ւ̗L ڑ݁E ̂悤ȏ󋵂ŁEՂESQL 镶gpӂāAڑv[̐ڑeXg܁EƂ΁Auselect 1 from dualvƁESQL ́AOracle DBMS ̏ꍇɂ͕K׋܁E

  2. SQLException ځE

  3. catch ubŃEreset() Ń\bh ؏o܁E

̊ȒPȃR[h AOracle DBMS ցE5 ̂‚̐ځEv郁[ŁE遃f JDBC ڑv[uengveXg܁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
@// EovOł͊Ǘғ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 EAJDBC ڑ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

R[h̑}AXVAB E/p>

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?vE\ƂƁ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} Af[^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?vE\gpӂ܁E

́ÉA‚̃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();

// XgAh֐gpӁ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

R[ĥ܂ƁE/p>

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();

// AR[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σgAh֐gpӁ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[X“RԂ܁E2 whCoɃT|[g 邷ׂĂ̋@\A wgpɌŗL̂̑̋@\́AWebLogic JDBC ̑w‹Ŏgp邱Ƃł܁E

Oracle \[X̑ҋ@

weblogic.jdbc.t3.Connection

[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 ztF񃃃b`

WebLogic jDriver for Oracle ́A2 w JDBC Connection vpeB weblogic.oci.cacheRows 𐂷邱ƂɁEāAOracle ztF񃃃b`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́A‚́E NԁEWebLogic jDriver for Oracle ́ANUMBER Ĵǂ̂悤Ȓlиx X𕂱ƂȁE Java IuWFNg EEE܁E‚܁E聒l 1 Integer ͂ƂĕԁEA123434567890.123456789 ̂悤Ȓl BigDecimal ͂ł̂ݕԁEB

J̒l̍ő吸x Oracle E郁^f[^́EB񁂵Bā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[^hCoɒ񋟂邽߁AWebLogic jDriver for Oracle ̓e[u̒lɁEȁE R xƃXP[ɍ킹ēK؁EJava ȃIuWFNg EE

whCȍꍇɂ́ÁE GɂȁEBftHgł́AWebLogic ́Aw JDBC AvP[VvO鑂ɁADBMS f[^̃RtBO[V”\ȁEResultSet ̍s ځE ANCAǵE ǂ̐\́E BAWebLogic ł́ANCAgf[^ Ό`ŗv邩Oɂ킩 ̂ŁAs IEvtFb`ā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ꂽꍁEAWebLogic JDBC NCAg AvP[Vł̃f[^擾ɂ͉e܁EWebLogic JDBC AString K 𓐌^ɕϊ邩 BAgetObject() \bh ؏oꍇAWebLogic JDBC ́AvtFb`ꂽƁE String EE

wNCAg AvP[VŁEgetObject() ̂́EA2 w WebLogic jDriver for Oracle AvP[Vł́E悤ɁÉi‚܁E聃vtFb`ɁAJ f[^^݁E\ ԂŁjAڑvpeB weblogic.t3.cacheRows zeroi0jEɐݒ肵ā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 NGXgX|郁[g WebLogic Server ցEURL ̂ŁÉEAtry ubNł̃vÓEƂŁE

try {
t3 = new T3Client("t3://bigbox:7001");
t3.connect();

ڑsꍁEEfinally CubN t3Client ŁEdisconnect() Ƀ\bh ؏oKv B

菁E3. ځE/p>

ڑ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`FbNĂ܁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 ();
}
}

OኁE/p>

SQLException ́AŁE ŁEȉɁAConnection CX^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ŐځEEAT3Client ̐ځEՁE

finally {
if (conn != null)
try {conn.close();} catch (Exception e) {;}
if (t3 != null)
try {t3.disconnect();} catch (Exception e) {;}
}

R[ĥ܂ƁE/p>

߈ȉ́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 IuWFNg ځ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 IuWFNggpӂĐݒ肵܁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

[Up⃃X[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 ĐڑCX^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 ̂悤ȊEEƂā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 LjA 蕶̐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 ́EEsɎāEA ۂɁE1 ͍śEEEB

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 ̊ȁE/p>

URL ł́A镔Ɏw肳ꂽ ցȂ̕Ɏw肷ׁE𐄑邱Ƃł܁E̐𗘗p AURL ւ܁E

Ƃ΁AURL ̐擪iWebLogic JDBC hCo URĹjɃf[^x[X x_ DBMS z⃃Xg 𓂁AɎ悤ɁAweblogic.t3.driverURL w KvȂȁ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

jdbc:weblogic:oracle

weblogic.jdbc.oci.Driver

jdbc:weblogic:mssqlserver4

weblogic.jdbc.mssqlserver4.Driver

jdbc:weblogic:informix4

weblogic.jdbc.informix4.Driver

Ő־Ƃퟥڗ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Ȃ́̕AK؁E2 ȁE16 ̐ii0123456789ABCDEFj̃R[hɒuK镗v i擪ɂ́u%vt𕂯j遁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 (:)

IDEi񁁃EBU[hj̎g

URL ASybase PowerJ ̂ȂǁEIDÉiJ‹BEBU[hƂ¢jɂgΗpł܁ENX URL SȌ`Ŏw肵ȁEEȁEIDE gpӁÉAWebLogic JDBC ̃hCõNX Ԃ悤ɁE܁E

JDBC Driver:

weblogic.jdbc.t3.Driver

ԂŎu?v u&v́AURL ł͓N Ӗퟹق܁E₷邽߂ɁÁE URL ́EEsɎāEA ۂɁE1 ͍śEEEB́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

 

back to top previous page