PK ‰±-Aoa«,mimetypeapplication/epub+zipPK‰±-AiTunesMetadata.plistpū artistName Oracle Corporation book-info cover-image-hash 835983369 cover-image-path OEBPS/dcommon/oracle-logo.jpg package-file-hash 322520835 publisher-unique-id b65895 unique-id 291379261 genre Oracle Documentation itemName Oracle WebLogic Server JDBCのプログラミング, 12cリリース1 (12.1.1) releaseDate 2012-01-12T11:50:48Z year 2012 PKW½H&”PK‰±-AMETA-INF/container.xmlā’ PKYuģēāPK‰±-AOEBPS/performance.htmZł„ JDBCć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćƒ»ćƒćƒ„ćƒ¼ćƒ‹ćƒ³ć‚°

4 JDBCć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćƒ»ćƒćƒ„ćƒ¼ćƒ‹ćƒ³ć‚°

恓恮ē« ć§ćÆ态JDBCć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć‚’å‘äøŠć•ć›ć‚‹ćŸć‚ć«ć€WebLogic Server悒čØ­čØˆćŠć‚ˆć³ę§‹ęˆć™ć‚‹ę–¹ę³•ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

WebLogicć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹å‘äøŠę©Ÿčƒ½

WebLogic恫ćÆ态JDBCć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć‚’å‘äøŠć•ć›ć‚‹ćŸć‚ć®ę©Ÿčƒ½ćŒć„ćć¤ć‹ē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚

ćƒ—ćƒ¼ćƒ«ć•ć‚ŒćŸęŽ„ē¶šć®ä½æē”Øć«ć‚ˆć‚‹ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć®å‘äøŠ

DBMSćø恮JDBCꎄē¶šć®ē¢ŗē«‹ć«ćÆ非åøøć«ę™‚é–“ćŒć‹ć‹ć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚ä½æē”Øć™ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ć‚Ŗćƒ¼ćƒ—ćƒ³ćØć‚Æćƒ­ćƒ¼ć‚ŗ悒ē¹°ć‚Ščæ”恙åæ…č¦ćŒć‚ć‚‹å “åˆć€ć“ć‚ŒćÆ重大ćŖćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć®å•é”ŒćØćŖć‚Šć¾ć™ć€‚WebLogicćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹å†…ć®ęŽ„ē¶šćƒ—ćƒ¼ćƒ«ć‚’ä½æē”Ø恙悋ćØć€ć“ć†ć—ćŸå•é”Œć‚’åŠ¹ęžœēš„ć«č§£ę±ŗć§ćć¾ć™ć€‚

WebLogic Serverć‚’čµ·å‹•ć™ć‚‹ćØć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹å†…ć®ęŽ„ē¶šćŒé–‹ćć€ć™ć¹ć¦ć®ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć§ä½æē”Øć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć§ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ć®ęŽ„ē¶šć‚’ć‚Æćƒ­ćƒ¼ć‚ŗ恙悋ćØć€ćć®ęŽ„ē¶šćÆćƒ—ćƒ¼ćƒ«ć«ęˆ»ć•ć‚Œć€ä»–ć®ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć§ä½æē”Ø恧恍悋ēŠ¶ę…‹ć«ćŖć‚Šć¾ć™ć€‚ć¤ć¾ć‚Šć€ęŽ„ē¶šćć®ć‚‚恮ćÆć‚Æćƒ­ćƒ¼ć‚ŗć•ć‚Œć¾ć›ć‚“ć€‚ćƒ—ćƒ¼ćƒ«ć•ć‚ŒćŸęŽ„ē¶šćÆ态恻ćØć‚“ć©č² č·ć‚’ē”Ÿć˜ć‚‹ć“ćØćŖ恏ć‚Ŗćƒ¼ćƒ—ćƒ³ć—ćŸć‚Šć‚Æćƒ­ćƒ¼ć‚ŗć—ćŸć‚Šć§ćć¾ć™ć€‚

ꖇćØćƒ‡ćƒ¼ć‚æć®ć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°

DBMSć®ć‚¢ć‚Æć‚»ć‚¹ć§ćÆćƒŖć‚½ćƒ¼ć‚¹ćŒå¤§é‡ć«ę¶ˆč²»ć•ć‚Œć¾ć™ć€‚ćƒ—ćƒ­ć‚°ćƒ©ćƒ ć§Prepared Statementć¾ćŸćÆCallable Statementć‚’å†åˆ©ē”Øć™ć‚‹å “åˆć€ć¾ćŸćÆč¤‡ę•°ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć®å…±ęœ‰ć‚„ć€å„ęŽ„ē¶šć©ć†ć—ć§ć®å­˜ē¶šćŒåÆčƒ½ćŖé »ē¹ć«ä½æē”Øć™ć‚‹ćƒ‡ćƒ¼ć‚æć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹å “åˆćÆ态仄äø‹ć‚’ä½æē”Øć—ć¦ćƒ‡ćƒ¼ć‚æć‚’ć‚­ćƒ£ćƒƒć‚·ćƒ„ć§ćć¾ć™ć€‚

  • ę–‡ć‚­ćƒ£ćƒƒć‚·ćƒ„(ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ē”Ø)

  • čŖ­å–ć‚Šå°‚ē”Øć‚Øćƒ³ćƒ†ć‚£ćƒ†ć‚£Bean

  • ć‚Æćƒ©ć‚¹ć‚æē’°å¢ƒć§ć®JNDI

ćƒ™ć‚¹ćƒˆćƒ»ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć®ćŸć‚ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³čØ­č؈

ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć®č‰Æ恗ę‚Ŗ恗ćÆ恻ćØć‚“ć©ć®å “åˆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³č؀čŖžć§ćÆćŖćć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćŒć©ć®ć‚ˆć†ć«čØ­čØˆć•ć‚Œć¦ć„ć‚‹ć‹ć«ć‚ˆć£ć¦ę±ŗå®šć•ć‚Œć¾ć™ć€‚ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć®ę•°ćØå “ę‰€ć€DBMSč”ØćŠć‚ˆć³ē“¢å¼•ć®ć‚µć‚¤ć‚ŗćØę§‹é€ ć€ćŠć‚ˆć³å•åˆć›ć®ę•°ćØć‚æ悤惗ćÆć€ć™ć¹ć¦ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć«å½±éŸæ悒äøŽćˆć¾ć™ć€‚

仄äø‹ć§ćÆć€ć™ć¹ć¦ć®DBMSć«å½“ć¦ćÆć¾ć‚‹äø€čˆ¬ēš„ćŖćƒ’ćƒ³ćƒˆć‚’ē¤ŗć—ć¾ć™ć€‚ć¾ćŸć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ä½æē”Ø恙悋ē‰¹å®šć®DBMSć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć«ć‚ˆćē›®ć‚’é€šć—ć¦ćŠćć“ćØć‚‚é‡č¦ć§ć™ć€‚

ćƒ‡ćƒ¼ć‚æć‚’ć§ćć‚‹ć ć‘ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®å†…éƒØć§å‡¦ē†ć™ć‚‹

DBMSć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć«é–¢ć™ć‚‹ęœ€ć‚‚ę·±åˆ»ćŖ問锌ćÆ态ē”Ÿćƒ‡ćƒ¼ć‚æ悒äøåæ…要恫ē§»å‹•ć™ć‚‹ć“ćØ恋悉ē™ŗē”Ÿć—ć¾ć™ć€‚ć“ć‚ŒćÆ态ē”Ÿćƒ‡ćƒ¼ć‚æ悒惍惃惈ćƒÆćƒ¼ć‚ÆäøŠć§ē§»å‹•ć™ć‚‹å “åˆć«ć‚‚ć€å˜ć«DBMSć®ć‚­ćƒ£ćƒƒć‚·ćƒ„ć«å‡ŗć—å…„ć‚Œć™ć‚‹å “åˆć«ć‚‚čØ€ćˆć‚‹ć“ćØ恧恙怂恓恆恗恟ē„”é§„ć‚’ęœ€å°é™ć«ęŠ‘ćˆć‚‹ćŸć‚ć®č‰Æć„ę–¹ę³•ćÆ态ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćŒDBMSćØåŒć˜ćƒžć‚·ćƒ³ć§å‹•ä½œć—ć¦ć„ć‚‹å “åˆć§ć‚‚ć€ćƒ­ć‚ø惃ć‚Æ悒ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć§ćÆćŖććƒ‡ćƒ¼ć‚æć®ę ¼ē“å “ę‰€ć€ć¤ć¾ć‚ŠDBMS恫ē½®ćć“ćØć§ć™ć€‚å®Ÿéš›ć®ćØ恓悍态äø€éƒØ恮DBMS恧ćÆ态1å€‹ć®CPUć‚’å…±ęœ‰ć™ć‚‹ćƒ•ć‚”ćƒƒćƒˆćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćØćƒ•ć‚”ćƒƒćƒˆDBMSćÆćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć®č‡“å‘½ēš„ćŖ低äø‹ć‚’ć‚‚ćŸć‚‰ć—ć¾ć™ć€‚

大éƒØåˆ†ć®DBMSćÆć€ć‚¹ćƒˆć‚¢ćƒ‰ćƒ»ćƒ—ćƒ­ć‚·ćƒ¼ć‚øćƒ£ćØć„ć†ć€ćƒ‡ćƒ¼ć‚æć®ę ¼ē“å “ę‰€ć«ćƒ­ć‚ø惃ć‚Æ悒ē½®ććŸć‚ć®ē†ęƒ³ēš„ćŖćƒ„ćƒ¼ćƒ«ć‚’å‚™ćˆć¦ć„ć¾ć™ć€‚ć‚¹ćƒˆć‚¢ćƒ‰ćƒ»ćƒ—ćƒ­ć‚·ćƒ¼ć‚øćƒ£ć‚’å‘¼ć³å‡ŗ恗恦10å€‹ć®č”Œć‚’ę›“ę–°ć™ć‚‹ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćØć€åŒć˜č”Œć‚’å–å¾—ćŠć‚ˆć³å¤‰ę›“ć—ć€UPDATEꖇ悒送äæ”ć—ć¦ćć®å¤‰ę›“ć‚’DBMS恫äæå­˜ć™ć‚‹ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć®é–“ć«ćÆć€ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć«å¤§ććŖé•ć„ćŒć‚ć‚Šć¾ć™ć€‚

ć¾ćŸć€DBMSć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’å‚ē…§ć—恦态DBMSå†…ć®ć‚­ćƒ£ćƒƒć‚·ćƒ„ćƒ»ćƒ”ćƒ¢ćƒŖćƒ¼ć®ē®”ē†ć«ć¤ć„恦čŖæć¹ć‚‹åæ…č¦ć‚‚ć‚ć‚Šć¾ć™ć€‚äø€éƒØ恮DBMS (SybasećŖ恩)ćÆ态DBMSć«å‰²ć‚Šå½“ć¦ć‚‰ć‚ŒćŸä»®ęƒ³ćƒ”ćƒ¢ćƒŖćƒ¼ć‚’åˆ†å‰²ć—ć€ē‰¹å®šć®ć‚Ŗ惖ć‚ø悧ć‚ÆćƒˆćŒć‚­ćƒ£ćƒƒć‚·ćƒ„ć®å›ŗå®šé ˜åŸŸć‚’ē‹¬å ēš„恫ä½æē”Øć§ćć‚‹ć‚ˆć†ć«ć™ć‚‹ę©Ÿčƒ½ć‚’å‚™ćˆć¦ć„ć¾ć™ć€‚ć“ć®ę©Ÿčƒ½ć‚’ä½æē”Ø恙悋ćØć€é‡č¦ćŖč”Øć¾ćŸćÆē“¢å¼•ć‚’ćƒ‡ć‚£ć‚¹ć‚Æ恋悉äø€åŗ¦čŖ­ćæå‡ŗć—ć¦ćŠćć“ćØć§ć€ćƒ‡ć‚£ć‚¹ć‚Æć«å†åŗ¦ć‚¢ć‚Æć‚»ć‚¹ć—ćŖćć¦ć‚‚ć™ć¹ć¦ć®ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćŒćć‚Œć‚‰ć‚’ä½æē”Øć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚

ēµ„č¾¼ćæDBMSć‚»ćƒƒćƒˆćƒ»ćƒ™ćƒ¼ć‚¹å‡¦ē†ć‚’ä½æē”Ø恙悋

SQLćÆć€ć‚»ćƒƒćƒˆå‡¦ē†č؀čŖžć§ć™ć€‚DBMSćÆć€å®Œå…Øć«ć‚»ćƒƒćƒˆćƒ»ćƒ™ćƒ¼ć‚¹å‡¦ē†ć‚’č”Œć†ć‚ˆć†ć«čØ­čØˆć•ć‚Œć¦ć„ć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®1č”Œćøć®ć‚¢ć‚Æć‚»ć‚¹ćÆć€ä¾‹å¤–ćŖćć‚»ćƒƒćƒˆćƒ»ćƒ™ćƒ¼ć‚¹ć®å‡¦ē†ć‚ˆć‚Šé…ćć€ć¾ćŸDBMSć«ć‚ˆć£ć¦ćÆå®Ÿč£…ćŒäøå®Œå…Ø恧恙怂恟ćØćˆć°ć€å¾“ę„­å“”100åć«é–¢ć™ć‚‹ćƒ‡ćƒ¼ć‚æćŒę ¼ē“ć•ć‚Œć¦ć„ć‚‹4恤恮č”ØćŒć‚ć‚‹å “åˆć€å…Øå¾“ę„­å“”ć«ć¤ć„ć¦å„č”Ø悒äø€åŗ¦ć«ę›“ę–°ć™ć‚‹ę–¹ćŒć€å¾“ę„­å“”1åć”ćØć«å„č”Ø悒100å›žę›“ę–°ć™ć‚‹ć‚ˆć‚Šåøøć«é«˜é€Ÿć§ć™ć€‚

ć‚ć¾ć‚Šć«č¤‡é›‘ć™ćŽć¦1č”Œćšć¤å‡¦ē†ć™ć‚‹ä»„å¤–ć«ę–¹ę³•ćŒćŖ恄ćØč€ƒćˆć‚‰ć‚Œć¦ć„ćŸå‡¦ē†ć®å¤šććŒć€ć‚»ćƒƒćƒˆćƒ»ćƒ™ćƒ¼ć‚¹ć®å‡¦ē†ć«ę›øćę›ćˆć‚‰ć‚Œć€ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć®å‘äøŠć‚’実ē¾ć—ć¦ć„ć¾ć™ć€‚ćŸćØćˆć°ć€ć‚ć‚‹ęœ‰åćŖēµ¦äøŽē®”ē†ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćÆ态å·Øå¤§ć§ä½Žé€ŸćŖCOBOLć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‹ć‚‰ć€é€£ē¶šå®Ÿč”Œć•ć‚Œć‚‹4ć¤ć®ć‚¹ćƒˆć‚¢ćƒ‰ćƒ»ćƒ—ćƒ­ć‚·ćƒ¼ć‚øćƒ£ć«å¤‰ę›ć•ć‚Œć¾ć—ćŸć€‚ć“ć®ēµęžœć€ćƒžćƒ«ćƒCPUćƒžć‚·ćƒ³ć§ä½•ę™‚é–“ć‚‚ć‹ć‹ć£ćŸå‡¦ē†ćŒć€ć‚ˆć‚Šå°‘ćŖ恄ćƒŖć‚½ćƒ¼ć‚¹ć§15åˆ†ć§å®Ÿč”Œć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć—ćŸć€‚

å•åˆć›ć‚’åŠ¹ēŽ‡åŒ–恙悋

ćƒ¦ćƒ¼ć‚¶ćƒ¼ć‹ć‚‰ć‚ˆćå°‹ć­ć‚‰ć‚Œć‚‹č³Ŗå•ć«ć€ć€Œē‰¹å®šć®ēµęžœć‚»ćƒƒćƒˆć§čæ”ć•ć‚Œć‚‹č”Œę•°ćÆć©ć®ćć‚‰ć„ć‹ć€ćØć„ć†ć‚‚ć®ćŒć‚ć‚Šć¾ć™ć€‚ć™ć¹ć¦ć®č”Œć‚’å–ć‚Šå‡ŗ恕恚恫čŖæć¹ć‚‹å”Æäø€ć®ę–¹ę³•ćÆć€ę¬”ć®ć‚ˆć†ć«countć‚­ćƒ¼ćƒÆćƒ¼ćƒ‰ć‚’ä½æē”Øć—ć¦åŒć˜å•åˆć›ć‚’ē™ŗč”Œć™ć‚‹ć“ćØ恧恙怂

SELECT count(*) from myTable, yourTable where ... 

ć“ć‚Œć«ć‚ˆć‚Šć€é–¢é€£ć™ć‚‹ćƒ‡ćƒ¼ć‚æ恫ćÆå¤‰ę›“ćŒćŖć‹ć£ćŸå “åˆć«ć€ć‚ŖćƒŖć‚øćƒŠćƒ«ć®å•åˆć›ćŒęˆ»ć™ć¹ćč”Œę•°ćŒčæ”ć•ć‚Œć¾ć™ć€‚ć¾ćŸé–¢é€£ć™ć‚‹ćƒ‡ćƒ¼ć‚æć«å½±éŸæ悒äøŽćˆć‚‹ćć®ä»–恮DBMSć‚¢ć‚Æćƒ†ć‚£ćƒ“ćƒ†ć‚£ćŒčµ·ććŸå “åˆć«ć€å•åˆć›ć‚’å®Ÿč”Œć™ć‚Œć°ć€å®Ÿéš›ć®č”Œę•°ćÆå¤‰ć‚ć‚Šć¾ć™ć€‚

恟恠恗态恓悌ćÆćƒŖć‚½ćƒ¼ć‚¹ć‚’å¤§é‡ć«ę¶ˆč²»ć™ć‚‹å‡¦ē†ć§ć‚悋恓ćØ恫ę³Øę„ć—ć¦ćć ć•ć„ć€‚å…ƒć®å•åˆć›ć«ć‚ˆć£ć¦ćÆ态DBMSćÆč”Œć‚’é€äæ”恙悋恮ćØåŒć˜ćć‚‰ć„ć®å‡¦ē†ć‚’č”Œć£ć¦č”Œć‚’ć‚«ć‚¦ćƒ³ćƒˆć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®å•åˆć›ćÆć€å®Ÿéš›ć«ć©ć®ć‚ˆć†ćŖćƒ‡ćƒ¼ć‚æ恌åæ…要ćŖć®ć‹ć‚’ć§ćć‚‹é™ć‚Šå…·ä½“ēš„ć«ęŒ‡å®šć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ćŸćØćˆć°ć€ć¾ćšäø€ę™‚č”Øć«ęŠ½å‡ŗć—ć€ć‚«ć‚¦ćƒ³ćƒˆć ć‘ć‚’čæ”ć—ć€ę¬”ć«é™å®šć•ć‚ŒćŸ2ē•Ŗē›®ć®å•åˆć›ć‚’送äæ”恗恦äø€ę™‚č”Øå†…ć®č”Œć®ć‚µćƒ–ć‚»ćƒƒćƒˆć ć‘ć‚’čæ”ć™ć‚ˆć†ć«ć—ć¾ć™ć€‚

ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćŒęœ¬å½“ć«åæ…要ćŖćƒ‡ćƒ¼ć‚æć ć‘ć‚’ęŠ½å‡ŗ恙悋恓ćØćŒć€ćć‚ć‚ć¦é‡č¦ć§ć™ć€‚ISAM (ćƒŖćƒ¬ćƒ¼ć‚·ćƒ§ćƒŠćƒ«ćƒ»ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ä»„å‰ć®ć‚¢ćƒ¼ć‚­ćƒ†ć‚Æćƒćƒ£)恋悉ē§»ę¤ć•ć‚ŒćŸäø€éƒØć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆć€å®Ÿéš›ć«åæ…要ćŖ恮ćÆęœ€åˆć®ę•°č”Œć ć‘ć§ć‚ć£ć¦ć‚‚ć€č”Øå†…ć®ć™ć¹ć¦ć®č”Œć‚’éøęŠžć™ć‚‹å•åˆć›ćŒé€äæ”ć•ć‚Œć¾ć™ć€‚ć¾ćŸć€ęœ€åˆć«å–å¾—ć™ć‚‹č”Œć‚’å¾—ć‚‹ćŸć‚ć«ć€Œsort być€å„ć‚’ä½æē”Øć™ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚‚ć‚ć‚Šć¾ć™ć€‚ć“ć®ć‚ˆć†ćŖćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹å•åˆć›ćÆć€ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć‚’äøåæ…č¦ć«ä½Žäø‹ć•ć›ć¾ć™ć€‚

SQLć‚’é©åˆ‡ć«ä½æē”Ø恙悋ćØć€ć“ć†ć—ćŸćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹äøŠć®å•é”Œć‚’回éæć§ćć¾ć™ć€‚ćŸćØćˆć°ć€é«˜é”ēµ¦äøŽć®ē¤¾å“”恮恆恔äøŠä½3äŗŗć ć‘ć®ćƒ‡ćƒ¼ć‚æ恌åæ…要ćŖå “åˆć€å•åˆć›ć‚’é©åˆ‡ć«č”Œć†ć«ćÆē›øé–¢ć‚µćƒ–å•åˆć›ć‚’ä½æē”Øć—ć¾ć™ć€‚č”Ø4-1恫态ꬔ恮SQLꖇ恧čæ”ć•ć‚Œć‚‹č”Øå…Øä½“ć‚’ē¤ŗć—ć¾ć™ć€‚

select * from payroll 

č”Ø4-1čæ”ć•ć‚ŒćŸć™ć¹ć¦ć®ēµęžœ

名前ēµ¦äøŽ

Joe

10

Mike

20

Sam

30

Tom

40

Jan

50

Ann

60

Sue

70

Hal

80

May

80


ē›øé–¢ć‚µćƒ–å•åˆć›

select p.name, p.salary from payroll p 
where 3 >= (select count(*) from payroll pp 
where pp.salary >= p.salary);

č”Ø4-2恫ē¤ŗć™ć‚ˆć†ć«ć€ć“ć®å•åˆć›ć§ćÆ态悈悊ēµžć‚Šč¾¼ć¾ć‚ŒćŸēµęžœćŒčæ”ć•ć‚Œć¾ć™ć€‚

č”Ø4-2ć‚µćƒ–å•åˆć›ć®ēµęžœ

名前ēµ¦äøŽ

Sue

70

Hal

80

May

80


ć“ć®å•åˆć›ć§ćÆ态äøŠä½3åć®é«˜ę‰€å¾—č€…ć®åå‰ćØēµ¦äøŽćŒē™»éŒ²ć•ć‚ŒćŸ3č”Œć ć‘ćŒčæ”ć•ć‚Œć¾ć™ć€‚ć“ć®å•åˆć›ć§ćÆ态ēµ¦äøŽč”Øå…Øä½“ć‚’ć‚¹ć‚­ćƒ£ćƒ³ć—ć€ę¬”ć«å„č”Œć«ć¤ć„ć¦å†…éƒØćƒ«ćƒ¼ćƒ—ć§ēµ¦äøŽč”Øå…Øä½“ć‚’å†ć‚¹ć‚­ćƒ£ćƒ³ć—ć¦ć€ćƒ«ćƒ¼ćƒ—ć®å¤–ć§ć‚¹ć‚­ćƒ£ćƒ³ć—ćŸē¾åœØć®č”Œć‚ˆć‚Šé«˜é”ć®ēµ¦äøŽćŒä½•ä»¶ć‚悋恋悒čŖæć¹ć¾ć™ć€‚ć“ć®å‡¦ē†ćÆ複雑ćŖć‚ˆć†ć«č¦‹ćˆć‚‹ć‹ć‚‚ć—ć‚Œć¾ć›ć‚“ćŒć€DBMSćÆ恓恮ēØ®ć®å‡¦ē†ć§ćÆSQLć‚’åŠ¹ēŽ‡ēš„恫ä½æē”Øć™ć‚‹ć‚ˆć†ć«čØ­čØˆć•ć‚Œć¦ć„ć¾ć™ć€‚

ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’å˜äø€ćƒćƒƒćƒć«ć™ć‚‹

åÆčƒ½ćŖ限悊态äø€é€£ć®ćƒ‡ćƒ¼ć‚æ処ē†ć‚’åŽé›†ć—ć€ę›“ę–°ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ę¬”ć®ć‚ˆć†ćŖ単äø€ć®ę–‡ć§ē™ŗč”Œć—ć¦ćć ć•ć„ć€‚

BEGIN TRANSACTION 
   UPDATE TABLE1... 
   INSERT INTO TABLE2 
   DELETE TABLE3 
COMMIT

ć“ć®ę–¹ę³•ć«ć‚ˆć‚Šć€åˆ„å€‹ć®ę–‡ćØć‚³ćƒŸćƒƒćƒˆć‚’ä½æē”Øć™ć‚‹ć‚ˆć‚Šć‚‚ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćŒå‘äøŠć—ć¾ć™ć€‚ćƒćƒƒćƒå†…ć§ę”件惭ć‚ø惃ć‚ÆćØäø€ę™‚č”Ø悒ä½æē”Øć™ć‚‹å “åˆć§ć‚‚ć€DBMSćÆć•ć¾ć–ć¾ćŖč”ŒćØč”Ø恫åæ…要ćŖć™ć¹ć¦ć®ćƒ­ćƒƒć‚Æć‚’å–å¾—ć—ć€ćƒÆćƒ³ćƒ»ć‚¹ćƒ†ćƒƒćƒ—ć§ä½æē”ØćŠć‚ˆć³č§£ę”¾ć™ć‚‹ć®ć§ć€ć“ć®ę–¹ę³•ćÆęœ›ć¾ć—ć„ćØčØ€ćˆć¾ć™ć€‚åˆ„å€‹ć®ę–‡ćØć‚³ćƒŸćƒƒćƒˆć‚’ä½æē”Ø恙悋ćØ态ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćØDBMSé–“ć®č»¢é€ćŒå¢—åŠ ć—ć€DBMSå†…ć®ćƒ­ćƒƒć‚Æę™‚é–“ćŒé•·ććŖć‚Šć¾ć™ć€‚ć“ć†ć—ćŸćƒ­ćƒƒć‚Æć«ć‚ˆć‚Šć€ä»–ć®ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćÆćć®ćƒ‡ćƒ¼ć‚æć«ć‚¢ć‚Æć‚»ć‚¹ć§ććŖ恏ćŖć‚Šć€č¤‡ę•°ć®ę›“ę–°ćŒć•ć¾ć–ć¾ćŖ順åŗć§č”Øć‚’ę›“ę–°ć§ćć‚‹ć‹ć«ć‚ˆć£ć¦ć€ćƒ‡ćƒƒćƒ‰ćƒ­ćƒƒć‚Æ恌ē™ŗē”Ÿć™ć‚‹åÆčƒ½ę€§ćŒć‚ć‚Šć¾ć™ć€‚

č­¦å‘Š :äø€ę„ć‚­ćƒ¼åˆ¶ē“„ć®é•åćŖć©ć«ć‚ˆć£ć¦äøŠčØ˜ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³äø­ć®ä»»ę„ć®ę–‡ćŒé©åˆ‡ć«å®Ÿč”Œć•ć‚ŒćŖć‹ć£ćŸå “åˆćÆć€ę”ä»¶SQL惭ć‚ø惃ć‚Æ悒čæ½åŠ ć—ć¦ę–‡ć®å¤±ę•—ć‚’ę¤œå‡ŗć—ć€ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ć‚³ćƒŸćƒƒćƒˆć›ćšć«ćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æ恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚äøŠć®ä¾‹ć®å “åˆć€INSERTę–‡ćŒå¤±ę•—ć™ć‚‹ćØ态恻ćØ悓恩恮DBMSćÆęŒæå…„ć®å¤±ę•—ć‚’ē¤ŗ恙ć‚Øćƒ©ćƒ¼ćƒ»ćƒ”ćƒƒć‚»ćƒ¼ć‚ø悒čæ”ć—ć¾ć™ćŒć€2ē•Ŗē›®ćØ3ē•Ŗē›®ć®ę–‡ć®é–“ć§ćƒ”ćƒƒć‚»ćƒ¼ć‚øć‚’å–å¾—ć—ćŸć‹ć®ć‚ˆć†ć«å‹•ä½œć—ć¦ć€ć‚³ćƒŸćƒƒćƒˆćŒč”Œć‚ć‚Œć¦ć—ć¾ć„ć¾ć™ć€‚Microsoft SQL Server恫ćÆ态SQL set xact_abort onć®å®Ÿč”Œć«ć‚ˆć£ć¦ęœ‰åŠ¹ćØćŖ悋ꎄē¶šć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćŒć‚ć‚Šć¾ć™ć€‚ć“ć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć‚’ä½æē”Ø恙悋ćØć€ę–‡ćŒå¤±ę•—ć—ćŸå “åˆć«ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒč‡Ŗ動ēš„ć«ćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æć•ć‚Œć¾ć™ć€‚

DBMSćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒćƒ¦ćƒ¼ć‚¶ćƒ¼å…„åŠ›ć«ä¾å­˜ć—ćŖć„ć‚ˆć†ć«ć™ć‚‹

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć€ć€ŒBEGIN TRAN怍ćØć€ę›“ę–°ć®ćŸć‚ć«č”Œć¾ćŸćÆč”Ø悒惭惃ć‚Æ恙悋SQL悒送äæ”ć™ć‚‹å “åˆć€ćƒ¦ćƒ¼ć‚¶ćƒ¼ć®ć‚­ćƒ¼å…„åŠ›ćŒćŖć‘ć‚Œć°ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ć‚³ćƒŸćƒƒćƒˆć§ććŖć„ć‚ˆć†ć«ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’čØ­čØˆć™ć‚‹ć“ćØćÆéæć‘ć¾ć™ć€‚ćƒ¦ćƒ¼ć‚¶ćƒ¼ćŒć‚­ćƒ¼å…„åŠ›ć‚’ć›ćšć«ę˜¼é£Ÿć«å‡ŗć‹ć‘ć¦ć—ć¾ć†ćØć€ćƒ¦ćƒ¼ć‚¶ćƒ¼ćŒęˆ»ć£ć¦ćć‚‹ć¾ć§DBMSå…Øä½“ćŒćƒ­ćƒƒć‚Æć•ć‚Œć¦ć—ć¾ć„ć¾ć™ć€‚

ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć®ä½œęˆćØ完äŗ†ć«ćƒ¦ćƒ¼ć‚¶ćƒ¼å…„åŠ›ćŒåæ…要ćŖ堓合ćÆ态ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚Æ惻惭惃ć‚Æ悒ä½æē”Øć—ć¾ć™ć€‚ē°”å˜ć«čØ€ćˆć°ć€ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚Æ惻惭惃ć‚Æ恧ćÆå•åˆć›ćØꛓꖰ恧ć‚æć‚¤ćƒ ć‚¹ć‚æćƒ³ćƒ—ćØ惈ćƒŖć‚¬ćƒ¼ćŒä½æē”Øć•ć‚Œć¾ć™ć€‚å•åˆć›ćÆć€ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³äø­ć«ćƒ‡ćƒ¼ć‚æ悒惭惃ć‚Æ恙悋恓ćØćŖ恏态ć‚æć‚¤ćƒ ć‚¹ć‚æćƒ³ćƒ—å€¤ć‚’ęŒć¤ćƒ‡ćƒ¼ć‚æ悒éøęŠžć—ć€ćć®ćƒ‡ćƒ¼ć‚æ恫åŸŗć„ć„ć¦ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ęŗ–å‚™ć—ć¾ć™ć€‚

ę›“ę–°ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒćƒ¦ćƒ¼ć‚¶ćƒ¼å…„åŠ›ć«ć‚ˆć£ć¦å®šē¾©ć•ć‚Œć‚‹ćØć€ćć®ćƒ‡ćƒ¼ć‚æćÆć‚æć‚¤ćƒ ć‚¹ć‚æćƒ³ćƒ—ćØå…±ć«å˜äø€ć®é€äæ”ćØć—ć¦é€ć‚‰ć‚Œć¾ć™ć€‚ć“ć‚Œć«ć‚ˆć‚Šć€ćć®ćƒ‡ćƒ¼ć‚æćŒęœ€åˆć«å–ć‚Šå‡ŗć—ćŸćƒ‡ćƒ¼ć‚æćØåŒć˜ć§ć‚ć‚‹ć“ćØ悒ē¢ŗčŖć§ćć¾ć™ć€‚ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒę­£åøøć«å®Ÿč”Œć•ć‚Œć‚‹ćØć€å¤‰ę›“ć•ć‚ŒćŸćƒ‡ćƒ¼ć‚æ恮ć‚æć‚¤ćƒ ćƒ»ć‚¹ć‚æćƒ³ćƒ—ćŒę›“ę–°ć•ć‚Œć¾ć™ć€‚åˆ„ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼ć‹ć‚‰ć®ę›“ę–°ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć«ć‚ˆć£ć¦ē¾åœØć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒå‡¦ē†ć™ć‚‹ćƒ‡ćƒ¼ć‚æćŒå¤‰ę›“ć•ć‚ŒćŸå “åˆć€ć‚æć‚¤ćƒ ćƒ»ć‚¹ć‚æćƒ³ćƒ—ćŒå¤‰ę›“ć•ć‚Œć€ē¾åœØć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćÆę‹’å¦ć•ć‚Œć¾ć™ć€‚ć»ćØć‚“ć©ć®å “åˆć€é–¢é€£ćƒ‡ćƒ¼ć‚æćŒå¤‰ę›“ć•ć‚Œć‚‹ć“ćØćÆćŖ恄恮恧通åøøćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćÆę­£åøøć«å®Ÿč”Œć•ć‚Œć¾ć™ć€‚ć‚ć‚‹ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒå¤±ę•—ć™ć‚‹ćØć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćÆę›“ę–°ć•ć‚ŒćŸćƒ‡ćƒ¼ć‚æ悒ćƒŖćƒ•ćƒ¬ćƒƒć‚·ćƒ„ć—ć€åæ…要恫åæœć˜ć¦ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’å†ä½œęˆć™ć‚‹ć‚ˆć†é€šēŸ„ć—ć¾ć™ć€‚

同位ē½®ę›“ꖰ悒ä½æē”Ø恙悋

ćƒ‡ćƒ¼ć‚æč”Œć®åŒä½ē½®ć§ć®ę›“ꖰćÆć€č”Œć®ē§»å‹•ć‚ˆć‚Šéžåøøć«é«˜é€Ÿć§ć™ć€‚č”Œć®ē§»å‹•ćÆć€ę›“ę–°å‡¦ē†ć§č”ØčØ­čØˆć®čر容ēÆ„å›²ć‚’č¶…ćˆć‚‹ć‚¹ćƒšćƒ¼ć‚¹ćŒåæ…要ćŖå “åˆć«č”Œć†åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚åæ…要ćŖć‚¹ćƒšćƒ¼ć‚¹ć‚’ęŒć¤č”Œć‚’ęœ€åˆć‹ć‚‰čØ­čØˆć—ć¦ćŠć‘ć°ć€ę›“ę–°ćÆę—©ććŖć‚Šć¾ć™ć€‚ćŸć ć—ć€č”Ø恫åæ…要ćŖćƒ‡ć‚£ć‚¹ć‚Æē©ŗ間ćÆå¤§ćććŖć‚Šć¾ć™ć€‚ćƒ‡ć‚£ć‚¹ć‚Æćƒ»ć‚¹ćƒšćƒ¼ć‚¹ć®ć‚³ć‚¹ćƒˆćÆä½Žć„ć®ć§ć€ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćŒå‘äøŠć™ć‚‹ć®ć§ć‚ć‚Œć°ć€ä½æē”Øé‡ć‚’å°‘ć—ć ć‘å¢—ć‚„ć™ć“ćØćÆä¾”å€¤ć‚ć‚‹ęŠ•č³‡ć ćØčØ€ćˆć‚‹ć§ć—ć‚‡ć†ć€‚

ę“ä½œćƒ‡ćƒ¼ć‚æć‚’ć§ćć‚‹ć ć‘å°ć•ćć™ć‚‹

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«ć‚ˆć£ć¦ćÆć€ę“ä½œćƒ‡ćƒ¼ć‚æć‚’å±„ę­“ćƒ‡ćƒ¼ć‚æćØåŒć˜č”Øć«ę ¼ē“ć™ć‚‹ć‚‚ć®ć‚‚ć‚ć‚Šć¾ć™ć€‚ę™‚é–“ć®ēµŒéŽćØå…±ć«å±„ę­“ćƒ‡ćƒ¼ć‚æ恌蓄ē©ć•ć‚Œć¦ć„恏ćØć€ć™ć¹ć¦ć®ę“ä½œå•åˆć›ć§ćÆć€ę–°ć—ć„ćƒ‡ćƒ¼ć‚æć‚’å–å¾—ć™ć‚‹ćŸć‚ć«(ę—„ć€…ć®ä½œę„­ć§ćÆ)å½¹ć«ē«‹ćŸćŖć„ćƒ‡ćƒ¼ć‚æć‚’å¤§é‡ć«čŖ­ćæå–ć‚‰ćŖ恑悌恰ćŖć‚Šć¾ć›ć‚“ć€‚ć“ć‚Œć‚’å›žéæ恙悋恫ćÆć€éŽåŽ»ć®ćƒ‡ćƒ¼ć‚æć‚’åˆ„ć®č”Ø恫ē§»å‹•ć—ć€ć¾ć‚Œć«ć—ć‹ē™ŗē”Ÿć—ćŖć„å±„ę­“å•åˆć›ć®ćŸć‚ć«ć“ć‚Œć‚‰ć®č”Ø悒ēµåˆć—ć¾ć™ć€‚ć“ć‚Œć‚’č”Œć†ć“ćØ恌恧恍ćŖć„å “åˆć€ęœ€ć‚‚é »ē¹ć«ä½æē”Øć•ć‚Œć‚‹ćƒ‡ćƒ¼ć‚æćŒč«–ē†ēš„ćŠć‚ˆć³ē‰©ē†ēš„ć«é…ē½®ć•ć‚Œć‚‹ć‚ˆć†ć€č”Ø悒ē“¢å¼•å‡¦ē†ćŠć‚ˆć³ć‚Æćƒ©ć‚¹ć‚æćƒŖćƒ³ć‚°ć—ć¾ć™ć€‚

ćƒ‘ć‚¤ćƒ—ćƒ©ć‚¤ćƒ³ćØäø¦č”Œå‡¦ē†ć‚’ä½æē”Ø恙悋

DBMSćÆć€ć•ć¾ć–ć¾ćŖä½œę„­ć‚’å¤§é‡ć«å‡¦ē†ć™ć‚‹ćØćć«ęœ€ć‚‚čƒ½åŠ›ć‚’ē™ŗę®ć—ć¾ć™ć€‚DBMSć®ęœ€ć‚‚äøé©åˆ‡ćŖä½æć„ę–¹ćÆ态1ć¤ć®å¤§č¦ęØ”ćŖć‚·ćƒ³ć‚°ćƒ«ćƒ»ć‚¹ćƒ¬ćƒƒćƒ‰ćƒ»ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ē”Øć®ćƒ€ćƒ ćƒ»ćƒ•ć‚”ć‚¤ćƒ«ćƒ»ć‚¹ćƒˆćƒ¬ćƒ¼ć‚øćØ恗恦ä½æē”Ø恙悋恓ćØć§ć™ć€‚å®¹ę˜“ć«åŒŗåˆ„ć§ćć‚‹ä½œę„­ć‚µćƒ–ć‚»ćƒƒćƒˆć‚’ę‰±ć†å¤§é‡ć®äø¦č”Œå‡¦ē†ć‚’ć‚µćƒćƒ¼ćƒˆć™ć‚‹ć‚ˆć†ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćØćƒ‡ćƒ¼ć‚æ悒čØ­čØˆć™ć‚Œć°ć€ćć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćÆć‚ˆć‚Šé«˜é€Ÿć«ćŖć‚Šć¾ć™ć€‚å‡¦ē†ć«č¤‡ę•°ć®ć‚¹ćƒ†ćƒƒćƒ—ćŒć‚ć‚‹å “åˆć€å…ˆč”Œć‚¹ćƒ†ćƒƒćƒ—ćŒå®Œäŗ†ć™ć‚‹ć¾ć§ę¬”ć®ć‚¹ćƒ†ćƒƒćƒ—ć‚’å¾…ć¤ć®ć§ćÆćŖćć€ć„ćšć‚Œć‹ć®å…ˆč”Œć‚¹ćƒ†ćƒƒćƒ—ćŒå‡¦ē†ć‚’ēµ‚ćˆćŸéƒØåˆ†ć®ćƒ‡ćƒ¼ć‚æ恫åÆ¾ć—ć¦å¾Œē¶šć‚¹ćƒ†ćƒƒćƒ—ćŒå‡¦ē†ć‚’é–‹å§‹ć§ćć‚‹ć‚ˆć†ć«ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’čØ­čØˆć—ć¾ć™ć€‚ć“ć‚ŒćÆåøø恫åÆčƒ½ć§ć‚ć‚‹ćØćÆé™ć‚Šć¾ć›ć‚“ćŒć€ć“ć®ć“ćØ恫ē•™ę„ć—ć¦ćƒ—ćƒ­ć‚°ćƒ©ćƒ ć‚’čØ­čØˆć™ć‚‹ćØć€ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć‚’å¤§å¹…ć«å‘äøŠć•ć›ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚

PK»ŻÓK ZZPK‰±-AOEBPS/cover.htmO°ż Cover

Oracle Corporation

PK[×ßpTOPK‰±-A OEBPS/dd.htm©:VÅ WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒć®ä½æē”Ø

5 WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒć®ä½æē”Ø

恓恮ē« ć§ćÆ态WebLogic Serverć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć«å«ć¾ć‚Œć‚‹WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

DataDirectćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ä½æē”Ø

DB2态Informix态MS SQL ServerćŠć‚ˆć³Sybase恫åÆ¾ć—ć¦DataDirectćƒ‰ćƒ©ć‚¤ćƒć®WebLogicćƒćƒ¼ć‚øćƒ§ćƒ³ćŒęä¾›ć•ć‚Œć¾ć™ć€‚WebLogic Serverē’°å¢ƒć§ć®WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒć®ę§‹ęˆćØä½æē”Øć®ę–¹ę³•ćÆć€ć“ć®å¾Œć®é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚ć“ć‚Œć‚‰ć®ćƒ‰ćƒ©ć‚¤ćƒć®č©³ē“°ćÆ态http://www.datadirect.com/index.html恮怎Progress DataDirect for JDBC User's Guide Release 4.2ć€ćŠć‚ˆć³ć€ŽProgress DataDirect for JDBC Reference Release 4.2ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚DataDirectćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’ä½æē”Ø恙悋ćØćć€č©²å½“ć™ć‚‹å “åˆć«ćÆę¬”ć®ć‚ˆć†ć«čŖæꕓ恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

JDBCä»•ę§˜ć®ęŗ–ę‹ 

WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒćÆ态JDBC 4.0ä»•ę§˜ć«ęŗ–ę‹ ć—ć¦ć„ć¾ć™ć€‚


ę³Øꄏ:

꧘怅ćŖćƒ™ćƒ³ćƒ€ćƒ¼ć®ćƒ‰ćƒ©ć‚¤ćƒä½æē”ØꙂ恮WebLogic Serverå‹•ä½œć‚’ęÆ”č¼ƒć—ćŸćØćć€ćƒ‰ćƒ©ć‚¤ćƒćŒJDBC恫ęŗ–ę‹ ć—ć¦ć„ć¦ć‚‚ć€ćƒ™ćƒ³ćƒ€ćƒ¼ćŒē•°ćŖć‚‹ä»•ę§˜ćØč§£é‡ˆć—ćŸć‚Šē‰¹å®šć®ēŠ¶ę³ć«åÆ¾ć—ć¦ē•°ćŖć‚‹å®Ÿč£…ć‚’ęä¾›ć—ćŸć‚Šć™ć‚‹åÆčƒ½ę€§ćŒć‚ć‚‹ć“ćØ悒åæ˜ć‚ŒćŖć„ć‚ˆć†ć«ć—ć¦ćć ć•ć„ć€‚

恟ćØ恈恰: WebLogicćƒ–ćƒ©ćƒ³ćƒ‰SQL Serverćƒ‰ćƒ©ć‚¤ćƒć®ä½æē”Øę™‚ć«ć€ć‚¹ć‚­ćƒ¼ćƒžćŒ0恋悉256恮ēÆ„å›²ć‚’å®šē¾©ć—恦恄悋TINYINTåˆ—ć«č² ć®å€¤(-100)ć‚’å…„åŠ›ć™ć‚‹å “åˆć€ć“ć®ćƒ‰ćƒ©ć‚¤ćƒćÆä¾‹å¤–ć‚’ć‚¹ćƒ­ćƒ¼ć—ć¾ć™ć€‚ćØ恓悍恌态Microsoft SQL Serverćƒ‰ćƒ©ć‚¤ćƒćÆč² ć®čØ˜å·ć‚’ē„”č¦–ć—ć¾ć™ć€‚


ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«

WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒćÆ态WebLogic ServerćØå…±ć«WL_HOME\server\libćƒ•ć‚©ćƒ«ćƒ€ć«ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć•ć‚Œć¾ć™ć€‚WL_HOMEćÆWebLogic Serverć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«å…ˆćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖć§ć™ć€‚ćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¹ćƒ»ćƒ•ć‚”ć‚¤ćƒ«ćÆweblogic.jarć®ćƒžćƒ‹ćƒ•ć‚§ć‚¹ćƒˆćƒ»ć‚Æćƒ©ć‚¹ćƒ‘ć‚¹ć«å«ć¾ć‚Œć¦ć„ć‚‹ć®ć§ć€ćƒ‰ćƒ©ć‚¤ćƒćÆč‡Ŗ動ēš„ć«ć‚µćƒ¼ćƒćƒ¼ć®ć‚Æćƒ©ć‚¹ćƒ‘ć‚¹ć«čæ½åŠ ć•ć‚Œć¾ć™ć€‚


ę³Øꄏ:

WebLogic Serverć®å®Œå…Øć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć‚’å®Ÿč”Œć™ć‚‹ćØ态WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒćŒćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć§ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć•ć‚Œć¾ć™ć€‚ć‚«ć‚¹ć‚æćƒ ćƒ»ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć‚’éøęŠžć—ćŸå “åˆćÆ态WebLogic JDBCćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćŒéøęŠžć•ć‚Œć¦ć„ć‚‹(惁悧惃ć‚Æćƒ»ćƒœćƒƒć‚Æć‚¹ćŒć‚Ŗćƒ³ć«ćŖć£ć¦ć„ć‚‹)恓ćØ悒ē¢ŗčŖć—ć¦ćć ć•ć„ć€‚ć“ć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćŒéøęŠžć•ć‚Œć¦ć„ćŖć„å “åˆć€ćƒ‰ćƒ©ć‚¤ćƒćÆć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć•ć‚Œć¾ć›ć‚“ć€‚


WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒćÆWebLogic恮ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆjarćƒ•ć‚”ć‚¤ćƒ«(wlclient.jarćŖ恩)ć®ćƒžćƒ‹ćƒ•ć‚§ć‚¹ćƒˆćƒ»ć‚Æćƒ©ć‚¹ćƒ‘ć‚¹ć«ćÆå«ć¾ć‚Œć¦ć„ć¾ć›ć‚“ć€‚WebLogicć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć§ćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Ø恙悋恫ćÆ态仄äø‹ć®ćƒ•ć‚”ć‚¤ćƒ«ć‚’ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«ć‚³ćƒ”ćƒ¼ć—ć€ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć®ć‚Æćƒ©ć‚¹ćƒ‘ć‚¹ć«čæ½åŠ ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

ć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ćƒ‰ćƒ©ć‚¤ćƒćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹

ćƒ‰ćƒ©ć‚¤ćƒćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ć‚µćƒćƒ¼ćƒˆć®č©³ē“°ćÆ态http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.htmlć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

WebLogic JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ä»‹ć—ćŸęŽ„ē¶š

WebLogic Serverę§‹ęˆć«JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ä½œęˆć—ć¦ć‹ć‚‰ć€ć“ć®JDBCćƒ‰ćƒ©ć‚¤ćƒć‚’éøęŠžć—ć¦ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹å†…ć«ē‰©ē†ēš„ćŖćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’ä½œęˆć—ć¾ć™ć€‚ćć‚Œć«ć‚ˆć£ć¦ć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćŒJNDI惄ćƒŖćƒ¼ć§ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ćƒ«ćƒƒć‚Æćƒ»ć‚¢ćƒƒćƒ—ć—ć¦ć€ęŽ„ē¶šć‚’č¦ę±‚ć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚

é–¢é€£ęƒ…å ±ć«ć¤ć„ć¦ćÆ态仄äø‹ć‚’参ē…§ć—ć¦ćć ć•ć„ć€‚

ē‹¬č‡Ŗ恮JDBCć‚³ćƒ¼ćƒ‰ć®é–‹ē™ŗ

ć‚³ćƒ¼ćƒ‰ćŒWebLogic Server恮ć‚Æćƒ©ć‚¹ćƒ‘ć‚¹/ē’°å¢ƒć§å®Ÿč”Œć•ć‚Œć‚‹ć‹ćŽć‚Šć€WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Ø恙悋态ē‹¬č‡Ŗ恮JDBCć‚³ćƒ¼ćƒ‰ć‚’é–‹ē™ŗ恗恦ä½æē”Øć§ćć¾ć™ć€‚

ꎄē¶šćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć®ęŒ‡å®š

ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ęŽ„ē¶šć®ęŽ„ē¶šćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ćÆ态WebLogic Serverē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć€ć‚³ćƒžćƒ³ćƒ‰ćƒ»ćƒ©ć‚¤ćƒ³ćƒ»ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć€ć¾ćŸćÆJMX API悒ä½æē”Øć—ć¦ęŒ‡å®šć—ć¾ć™ć€‚ęŽ„ē¶šćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ćÆDBMSć«ć‚ˆć£ć¦ē•°ćŖć‚Šć¾ć™ć€‚å„WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒå›ŗęœ‰ć®ęŽ„ē¶šćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć®ćƒŖć‚¹ćƒˆćÆ态怎Progress DataDirect for JDBC User's Guideć€ć®č©²å½“ć™ć‚‹ćƒ‰ćƒ©ć‚¤ćƒć®ć€ŒConnection Propertiesć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

IPć‚¢ćƒ‰ćƒ¬ć‚¹ć®ä½æē”Ø

WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒćÆ态IPv4ćŠć‚ˆć³IPv6å½¢å¼ć®Internet Protocol (IP)ć‚¢ćƒ‰ćƒ¬ć‚¹ć‚’ć‚µćƒćƒ¼ćƒˆć—ć¦ć„ć¾ć™ć€‚ć“ć‚ŒćÆ态怎Progress DataDirect for JDBC User's Guide Release 4.2怏(http://www.datadirect.com/index.html)恧čŖ¬ę˜Žć•ć‚Œć¦ć„ć¾ć™ć€‚WebLogicē’°å¢ƒć§ćÆ态URL恮jdbc:datadirect恮éƒØåˆ†ćŒjdbc:weblogicć«å¤‰ę›ć•ć‚Œć‚‹ć ć‘ć§ć™ć€‚ćŸćØćˆć°ć€ę¬”ć®ęŽ„ē¶šURL恧ćÆ态IPv4å½¢å¼ć§ć‚µćƒ¼ćƒćƒ¼ć‚’ęŒ‡å®šć—ć¦ć„ć¾ć™ć€‚

jdbc:weblogic:db2://123.456.78.90:50000;DatabaseName=jdbc;User=test; Password=secret

Javać‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ćƒ»ćƒžćƒćƒ¼ć‚øćƒ£ć«åæ…要ćŖćƒ‘ćƒ¼ćƒŸćƒƒć‚·ćƒ§ćƒ³

Javać‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ćƒ»ćƒžćƒćƒ¼ć‚øćƒ£ć‚’ęœ‰åŠ¹ć«ć—ćŸēŠ¶ę…‹ć§WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć™ć‚‹å “åˆćÆć€ćƒ‰ćƒ”ć‚¤ćƒ³ć®ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ćƒ»ćƒćƒŖć‚·ćƒ¼ćƒ»ćƒ•ć‚”ć‚¤ćƒ«ć«ē‰¹å®šć®ćƒ‘ćƒ¼ćƒŸćƒƒć‚·ćƒ§ćƒ³ć‚’čØ­å®šć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚WebLogic Server恫ćÆ态ē·Øé›†ćŠć‚ˆć³ä½æē”ØåÆčƒ½ćŖć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ćƒ»ćƒćƒŖć‚·ćƒ¼ćƒ»ćƒ•ć‚”ć‚¤ćƒ«ćŒē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć®ćƒ•ć‚”ć‚¤ćƒ«ćÆ态WL_HOME\server\lib\weblogic.policyć«ć‚ć‚Šć¾ć™ć€‚weblogic.policyćƒ•ć‚”ć‚¤ćƒ«ć«ćÆć€ćƒ‰ćƒ©ć‚¤ćƒć«åæ…要ćŖ恻ćØć‚“ć©ć™ć¹ć¦ć®ćƒ‘ćƒ¼ćƒŸćƒƒć‚·ćƒ§ćƒ³ćŒå«ć¾ć‚Œć¦ć„ć¾ć™ć€‚

weblogic.policyćƒ•ć‚”ć‚¤ćƒ«ć‚’å¤‰ę›“ć›ćšć«ä½æē”Øć™ć‚‹å “åˆćÆć€ćć‚Œä»„äøŠć®ćƒ‘ćƒ¼ćƒŸćƒƒć‚·ćƒ§ćƒ³ć‚’ä»˜äøŽć™ć‚‹åæ…要ćÆć‚ć‚Šć¾ć›ć‚“ć€‚åˆ„ć®ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ćƒ»ćƒćƒŖć‚·ćƒ¼ćƒ»ćƒ•ć‚”ć‚¤ćƒ«ć‚’ä½æē”Øć™ć‚‹å “åˆć‚„ć€čæ½åŠ ć®ęØ©é™ć‚’åæ…要ćØć™ć‚‹ćƒ‰ćƒ©ć‚¤ćƒę©Ÿčƒ½ć‚’ä½æē”Øć™ć‚‹å “åˆćÆ态怎Progress DataDirect for JDBC User's Guide Release 4.2怏(http://www.datadirect.com/index.html)ć‚’å‚ē…§ć—恦åæ…要ćØćŖ悋ęØ©é™ć‚’čæ½åŠ ć—ć¦ćć ć•ć„ć€‚WL_HOME/server悒install_dirćØ恗恦ä½æē”Øć—ć¾ć™ć€‚ć“ć®ćØ恍态WL_HOMEćÆWebLogic Serverć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ćŸćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖ恧恙怂

WebLogic Server恧Javać‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ćƒ»ćƒžćƒćƒ¼ć‚øćƒ£ć®ä½æē”Øć®č©³ē“°ćÆ态怎Oracle WebLogic Serverć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć€ć®Javać‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ć‚’ä½æē”Ø恗恟WebLogicćƒŖć‚½ćƒ¼ć‚¹ć®äæč­·ć«é–¢ć™ć‚‹é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

MS SQLServerćƒ¦ćƒ¼ć‚¶ćƒ¼ć®å “åˆ

恓恓恧ćÆ态DataDirect MS SQL Serverćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Ø恙悋際恮MS SQLServerć®ę§‹ęˆć«é–¢ć™ć‚‹čæ½åŠ ęƒ…å ±ć‚’čŖ¬ę˜Žć—ć¾ć™ć€‚

MS SQLServer XA DLLć®ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«

WebLogic Server恧ćÆ态MS SQL Serverē”Ø恫ꬔ恮XA dllćŒęä¾›ć•ć‚Œć¾ć™ć€‚

  • sqljdbc.dll: 32惓惃惈Windows

  • 64sqljdbc.dll: 64惓惃惈Windows

  • X64sqljdbc.dll: X64ćƒ—ćƒ­ć‚»ćƒƒć‚µ

ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć™ć‚‹ć«ćÆć€ę¬”ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. WL_HOME\server\libćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖ恫cd恧ē§»å‹•ć—ć¾ć™ć€‚

  2. čØ­å®šć®č©³ē“°ćÆ仄äø‹ć®ćØ恊悊恧恙怂

    • 32惓惃惈Windowsć‚·ć‚¹ćƒ†ćƒ ć§ćÆsqljdbc.dllćƒ•ć‚”ć‚¤ćƒ«ć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¾ć™ć€‚

    • 64惓惃惈Windowsć‚·ć‚¹ćƒ†ćƒ ć§ćÆ态64sqljdbc.dllćƒ•ć‚”ć‚¤ćƒ«ć‚’ć‚³ćƒ”ćƒ¼ć—ć¦åå‰ć‚’sqljdbc.dllć«å¤‰ę›“ć—ć¦ć‹ć‚‰ć€sqljdbc.dllćƒ•ć‚”ć‚¤ćƒ«ć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¾ć™ć€‚

    • X64ćƒ—ćƒ­ć‚»ćƒƒć‚µć§ćÆ态X64sqljdbc.dllćƒ•ć‚”ć‚¤ćƒ«ć‚’ć‚³ćƒ”ćƒ¼ć—ć¦åå‰ć‚’sqljdbc.dllć«å¤‰ę›“ć—ć¦ć‹ć‚‰ć€sqljdbc.dllćƒ•ć‚”ć‚¤ćƒ«ć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¾ć™ć€‚

MS SQLServer恧恮instjdbc.sql恮ä½æē”Ø

ć‚¹ćƒˆć‚¢ćƒ‰ćƒ»ćƒ—ćƒ­ć‚·ćƒ¼ć‚øćƒ£ć‚’MS SQLServerćƒćƒ¼ć‚øćƒ§ćƒ³2008仄äøŠć«ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć™ć‚‹DataDirect instjdbc.sqlć‚¹ć‚ÆćƒŖćƒ—ćƒˆć®äø€éƒØć®ćƒćƒ¼ć‚øćƒ§ćƒ³ć«ć‚Øćƒ©ćƒ¼ćŒå«ć¾ć‚Œć‚‹ć“ćØćŒć‚ć‹ć£ć¦ć„ć¾ć™ć€‚åÆ¾å‡¦ę–¹ę³•ćØ恗恦态instjdbc.sqlć‚¹ć‚ÆćƒŖćƒ—ćƒˆå†…ć§dump tran master with no_logć®ć™ć¹ć¦ć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć‚’DBCC SHRINKFILE(mastlog, 1)恧ē½®ćę›ćˆć¦ćć ć•ć„怂

PKū„ś®:©:PK‰±-AOEBPS/title.htm$Ūę Oracle Fusion Middleware Oracle WebLogic Server JDBCć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°, 12cćƒŖćƒŖćƒ¼ć‚¹1 (12.1.1)

OracleĀ® Fusion Middleware

Oracle WebLogic Server JDBCć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°

12cćƒŖćƒŖćƒ¼ć‚¹1 (12.1.1)

B65895-02(åŽŸęœ¬éƒØ品ē•Ŗ号:E24376-02)

2012幓1꜈

ć“ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćÆ态Java Database Connectivity (JDBC) API悒ä½æē”Øć™ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®é–‹ē™ŗćØć‚µćƒćƒ¼ćƒˆć‚’č”Œć†ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢é–‹ē™ŗč€…ćŠć‚ˆć³ć‚·ć‚¹ćƒ†ćƒ ē®”ē†č€…å‘ć‘ć«ę›øć‹ć‚Œć¦ć„ć¾ć™ć€‚ć¾ćŸć€WebLogic Serverć‚’č©•ä¾”ć™ć‚‹ćƒ“ć‚øćƒć‚¹ćƒ»ć‚¢ćƒŠćƒŖć‚¹ćƒˆć‚„ć‚·ć‚¹ćƒ†ćƒ čØ­čØˆč€…ć«ćØć£ć¦ęœ‰ē”ØćŖęƒ…å ±ć‚‚ęŽ²č¼‰ć—ć¦ć„ć¾ć™ć€‚


Oracle Fusion Middleware Oracle WebLogic Server JDBCć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°, 12cćƒŖćƒŖćƒ¼ć‚¹1 (12.1.1)

B65895-02

Copyright Ā© 2007, 2012,Ā Oracle and/or its affiliates.All rights reserved.

ć“ć®ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ćŠć‚ˆć³é–¢é€£ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ä½æē”ØćØ開ē¤ŗćÆć€ćƒ©ć‚¤ć‚»ćƒ³ć‚¹å„‘ē“„ć®åˆ¶ē“„ę”ä»¶ć«å¾“ć†ć‚‚ć®ćØ恗态ēŸ„ēš„č²”ē”£ć«é–¢ć™ć‚‹ę³•å¾‹ć«ć‚ˆć‚Šäæč­·ć•ć‚Œć¦ć„ć¾ć™ć€‚ćƒ©ć‚¤ć‚»ćƒ³ć‚¹å„‘ē“„ć§ę˜Žē¤ŗēš„恫čØ±č«¾ć•ć‚Œć¦ć„ć‚‹å “åˆć‚‚ć—ććÆę³•å¾‹ć«ć‚ˆć£ć¦čŖć‚ć‚‰ć‚Œć¦ć„ć‚‹å “åˆć‚’é™¤ćć€å½¢å¼ć€ę‰‹ę®µć«é–¢äæ‚ćŖ恏态恄恋ćŖ悋éƒØåˆ†ć‚‚ä½æē”Øć€č¤‡å†™ć€č¤‡č£½ć€ēæ»čØ³ć€ę”¾é€ć€äæ®ę­£ć€ćƒ©ć‚¤ć‚»ćƒ³ć‚¹ä¾›äøŽć€é€äæ”态配åøƒć€ē™ŗč”Øć€å®Ÿč”Œć€å…¬é–‹ć¾ćŸćÆč”Øē¤ŗ恙悋恓ćØćÆć§ćć¾ć›ć‚“ć€‚ć“ć®ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ć®ćƒŖćƒćƒ¼ć‚¹ćƒ»ć‚Øćƒ³ć‚øćƒ‹ć‚¢ćƒŖćƒ³ć‚°ć€é€†ć‚¢ć‚»ćƒ³ćƒ–ćƒ«ć€é€†ć‚³ćƒ³ćƒ‘ć‚¤ćƒ«ćÆäŗ’ę›ę€§ć®ćŸć‚ć«ę³•å¾‹ć«ć‚ˆć£ć¦č¦å®šć•ć‚Œć¦ć„ć‚‹å “åˆć‚’é™¤ćć€ē¦ę­¢ć•ć‚Œć¦ć„ć¾ć™ć€‚

恓恓恫čØ˜č¼‰ć•ć‚ŒćŸęƒ…å ±ćÆäŗˆå‘ŠćŖć—ć«å¤‰ę›“ć•ć‚Œć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚ć¾ćŸć€čŖ¤ć‚ŠćŒē„”恄恓ćØ恮äæčؼćÆć„ćŸć—ć‹ć­ć¾ć™ć€‚čŖ¤ć‚Šć‚’č¦‹ć¤ć‘ćŸå “合ćÆ态ć‚Ŗ惩ć‚Æ惫ē¤¾ć¾ć§ć”連ēµ”恏恠恕恄怂

ć“ć®ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ć¾ćŸćÆé–¢é€£ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’ć€ē±³å›½ę”æåŗœę©Ÿé–¢ć‚‚ć—ććÆē±³å›½ę”æåŗœę©Ÿé–¢ć«ä»£ć‚ć£ć¦ć“ć®ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ć¾ćŸćÆé–¢é€£ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’ćƒ©ć‚¤ć‚»ćƒ³ć‚¹ć•ć‚ŒćŸč€…ć«ęä¾›ć™ć‚‹å “åˆćÆ态ꬔ恮通ēŸ„ćŒé©ē”Øć•ć‚Œć¾ć™ć€‚

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

ć“ć®ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ć‚‚ć—ććÆćƒćƒ¼ćƒ‰ć‚¦ć‚§ć‚¢ćÆ꧘怅ćŖęƒ…å ±ē®”ē†ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć®äø€čˆ¬ēš„ćŖä½æē”Øć®ćŸć‚ć«é–‹ē™ŗć•ć‚ŒćŸć‚‚ć®ć§ć™ć€‚ć“ć®ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ć‚‚ć—ććÆćƒćƒ¼ćƒ‰ć‚¦ć‚§ć‚¢ćÆć€å±é™ŗćŒä¼“ć†ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³(äŗŗēš„å‚·å®³ć‚’ē™ŗē”Ÿć•ć›ć‚‹åÆčƒ½ę€§ćŒć‚ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’å«ć‚€)ćø恮ē”Ø途悒ē›®ēš„ćØ恗恦開ē™ŗć•ć‚Œć¦ć„ć¾ć›ć‚“ć€‚ć“ć®ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ć‚‚ć—ććÆćƒćƒ¼ćƒ‰ć‚¦ć‚§ć‚¢ć‚’å±é™ŗćŒä¼“ć†ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ä½æē”Øć™ć‚‹éš›ć€å®‰å…Ø恫ä½æē”Øć™ć‚‹ćŸć‚ć«ć€é©åˆ‡ćŖ安å…Øč£…ē½®ć€ćƒćƒƒć‚Æć‚¢ćƒƒćƒ—ć€å†—é•·ę€§(redundancy)ć€ćć®ä»–ć®åƾē­–ć‚’č¬›ć˜ć‚‹ć“ćØćÆä½æē”Øč€…ć®č²¬ä»»ćØćŖć‚Šć¾ć™ć€‚ć“ć®ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ć‚‚ć—ććÆćƒćƒ¼ćƒ‰ć‚¦ć‚§ć‚¢ć‚’å±é™ŗćŒä¼“ć†ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ä½æē”Ø恗恟恓ćØć«čµ·å› ć—ć¦ęå®³ćŒē™ŗē”Ÿć—恦悂态ć‚Ŗ惩ć‚Æ惫ē¤¾ćŠć‚ˆć³ćć®é–¢é€£ä¼šē¤¾ćÆäø€åˆ‡ć®č²¬ä»»ć‚’č² ć„ć‹ć­ć¾ć™ć€‚

OraclećŠć‚ˆć³JavaćÆOracle CorporationćŠć‚ˆć³ćć®é–¢é€£ä¼ę„­ć®ē™»éŒ²å•†ęØ™ć§ć™ć€‚ćć®ä»–ć®åē§°ćÆć€ćć‚Œćžć‚Œć®ę‰€ęœ‰č€…ć®å•†ęØ™ć¾ćŸćÆē™»éŒ²å•†ęØ™ć§ć™ć€‚

Intel态Intel XeonćÆ态Intel Corporationć®å•†ęØ™ć¾ćŸćÆē™»éŒ²å•†ęØ™ć§ć™ć€‚ć™ć¹ć¦ć®SPARCć®å•†ęؙćÆćƒ©ć‚¤ć‚»ćƒ³ć‚¹ć‚’ć‚‚ćØ恫ä½æē”Ø恗态SPARC International, Inc.ć®å•†ęØ™ć¾ćŸćÆē™»éŒ²å•†ęØ™ć§ć™ć€‚AMD态Opteron态AMDćƒ­ć‚“ć€AMD Opteronćƒ­ć‚“ćÆ态Advanced Micro Devices, Inc.ć®å•†ęØ™ć¾ćŸćÆē™»éŒ²å•†ęØ™ć§ć™ć€‚UNIXćÆ态The Open Group恮ē™»éŒ²å•†ęØ™ć§ć™ć€‚

ć“ć®ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ć¾ćŸćÆćƒćƒ¼ćƒ‰ć‚¦ć‚§ć‚¢ć€ćć—ć¦ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćÆ态ē¬¬äø‰č€…ć®ć‚³ćƒ³ćƒ†ćƒ³ćƒ„ć€č£½å“ć€ć‚µćƒ¼ćƒ“ć‚¹ćøć®ć‚¢ć‚Æć‚»ć‚¹ć€ć‚ć‚‹ć„ćÆćć‚Œć‚‰ć«é–¢ć™ć‚‹ęƒ…å ±ć‚’ęä¾›ć™ć‚‹ć“ćØćŒć‚ć‚Šć¾ć™ć€‚ć‚Ŗ惩ć‚Æ惫ē¤¾ćŠć‚ˆć³ćć®é–¢é€£ä¼šē¤¾ćÆ态ē¬¬äø‰č€…ć®ć‚³ćƒ³ćƒ†ćƒ³ćƒ„ć€č£½å“ć€ć‚µćƒ¼ćƒ“ć‚¹ć«é–¢ć—ć¦äø€åˆ‡ć®č²¬ä»»ć‚’č² ć‚ćšć€ć„ć‹ćŖ悋äæčØ¼ć‚‚ć„ćŸć—ć¾ć›ć‚“ć€‚ć‚Ŗ惩ć‚Æ惫ē¤¾ćŠć‚ˆć³ćć®é–¢é€£ä¼šē¤¾ćÆ态ē¬¬äø‰č€…ć®ć‚³ćƒ³ćƒ†ćƒ³ćƒ„ć€č£½å“ć€ć‚µćƒ¼ćƒ“ć‚¹ćøć®ć‚¢ć‚Æć‚»ć‚¹ć¾ćŸćÆä½æē”Øć«ć‚ˆć£ć¦ęå¤±ć€č²»ē”Ø态恂悋恄ćÆęå®³ćŒē™ŗē”Ÿć—恦悂态äø€åˆ‡ć®č²¬ä»»ć‚’č² ć„ć‹ć­ć¾ć™ć€‚

PK°ŌÕ)$PK‰±-AOEBPS/intro.htm¤1[Ī ꦂ要ćØćƒ­ćƒ¼ćƒ‰ćƒžćƒƒćƒ—

1ꦂ要ćØćƒ­ćƒ¼ćƒ‰ćƒžćƒƒćƒ—

恓恮ē« ć§ćÆć€ć“ć®ć‚¬ć‚¤ćƒ‰ć€ŽOracle WebLogic Server JDBCć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć€ć®å†…å®¹ćØę§‹ęˆć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ć‚¹ć‚³ćƒ¼ćƒ—ćØåÆ¾č±”čŖ­č€…

ć“ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćÆ态Java Database Connectivity (JDBC) API悒ä½æē”Øć™ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®é–‹ē™ŗćØć‚µćƒćƒ¼ćƒˆć‚’č”Œć†ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢é–‹ē™ŗč€…ćŠć‚ˆć³ć‚·ć‚¹ćƒ†ćƒ ē®”ē†č€…å‘ć‘ć«ę›øć‹ć‚Œć¦ć„ć¾ć™ć€‚ć¾ćŸć€WebLogic Serverć‚’č©•ä¾”ć™ć‚‹ćƒ“ć‚øćƒć‚¹ćƒ»ć‚¢ćƒŠćƒŖć‚¹ćƒˆć‚„ć‚·ć‚¹ćƒ†ćƒ čØ­čØˆč€…ć«ćØć£ć¦ęœ‰ē”ØćŖęƒ…å ±ć‚‚ęŽ²č¼‰ć—ć¦ć„ć¾ć™ć€‚ć“ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ćƒˆćƒ”ćƒƒć‚ÆćÆć€ć‚½ćƒ•ćƒˆć‚¦ć‚§ć‚¢ćƒ»ćƒ—ćƒ­ć‚ø悧ć‚Æćƒˆć®č©•ä¾”ć€čØ­čØˆć€é–‹ē™ŗć€ęœ¬ē•Ŗå‰ć€ćŠć‚ˆć³ęœ¬ē•Ŗę®µéšŽć«é–¢é€£ć—ć¦ć„ć¾ć™ć€‚

ć“ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆćÆ态Java EEćŠć‚ˆć³EJB恮ꦂåæµć«ē²¾é€šć—恦恄悋čŖ­č€…ć‚’åÆ¾č±”ćØć—ć¦ć„ć¾ć™ć€‚ć“ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć§ćÆ态WebLogic Server EJBćŒęä¾›ć™ć‚‹ä»˜åŠ ä¾”å€¤ę©Ÿčƒ½ćØ态EJBć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’å®Ÿč”Œć™ć‚‹WebLogic Serverę©Ÿčƒ½ć®ä½æć„ę–¹ć«é–¢ć™ć‚‹äø»č¦ćŖęƒ…å ±ćŒé‡ē‚¹ēš„ć«ę‰±ć‚ć‚Œć¦ć„ć¾ć™ć€‚

ć“ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ę‰‹å¼•ć

é–¢é€£ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆ

ć“ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć§ćÆ态JDBCå›ŗęœ‰ć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć«é–¢ć™ć‚‹ęƒ…å ±ć‚’å–ę‰±ć„ć¾ć™ć€‚

WebLogic Serverć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’é–‹ē™ŗć€ćƒ‡ćƒ—ćƒ­ć‚¤ć€ćŠć‚ˆć³ćƒ¢ćƒ‹ć‚æćƒ¼ć™ć‚‹ćŸć‚ć®åŒ…ę‹¬ēš„ćŖć‚¬ć‚¤ćƒ‰ćƒ©ć‚¤ćƒ³ć«ć¤ć„ć¦ćÆ态仄äø‹ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

JDBCć‚µćƒ³ćƒ—ćƒ«ćØćƒćƒ„ćƒ¼ćƒˆćƒŖć‚¢ćƒ«

ć“ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ä»–ć«ć‚‚ć€ć•ć¾ć–ć¾ćŖJDBCć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ćŒē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć‚Œć‚‰ć®ć‚µćƒ³ćƒ—ćƒ«ć§ćÆ态JDBCć®ę§‹ęˆćØAPI恮ä½æć„ę–¹ć€ćŠć‚ˆć³äø»č¦ćŖJDBC開ē™ŗć‚æć‚¹ć‚Æć‚’å®Ÿč”Œć™ć‚‹å®Ÿéš›ēš„ćŖꉋ順恌ē¤ŗć•ć‚Œć¦ć„ć¾ć™ć€‚

Avitek Medical Recordsć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³(MedRec)

MedRecćÆWebLogic Serverć«ä»˜å±žć—ćŸć‚Øćƒ³ćƒ‰ćƒ„ćƒ¼ć‚Øćƒ³ćƒ‰ć®ć‚µćƒ³ćƒ—ćƒ«Java EEć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć‚ć‚Šć€äø€å…ƒēš„恧ē‹¬ē«‹ć—ćŸåŒ»ē™‚čؘ録ē®”ē†ć‚·ć‚¹ćƒ†ćƒ ć‚’ć‚·ćƒŸćƒ„ćƒ¬ćƒ¼ćƒˆć—ć¾ć™ć€‚MedRecć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«ćÆć€ę‚£č€…ć€åŒ»åø«ć€ćŠć‚ˆć³ē®”ē†č€…恫åÆ¾ć—ć¦ć€ć•ć¾ć–ć¾ćŖć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć‚’ä½æē”Øć—ć¦ę‚£č€…ć®ćƒ‡ćƒ¼ć‚æ悒ē®”ē†ć™ć‚‹ćƒ•ćƒ¬ćƒ¼ćƒ ćƒÆćƒ¼ć‚Æ恌ē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚

MedRecćÆWebLogic ServerćØJava EEć®ę©Ÿčƒ½ć‚’ä¾‹ē¤ŗ恗态OracleęŽØå„Øć®ćƒ™ć‚¹ćƒˆćƒ»ćƒ—ćƒ©ć‚Æćƒ†ć‚£ć‚¹ć‚’é‡č¦ē‚¹ćØ恗恦ē¤ŗć—ć¾ć™ć€‚MedRecćÆWebLogic Server配åøƒć‚­ćƒƒćƒˆć«å«ć¾ć‚Œć¦ćŠć‚Šć€Windowsćƒžć‚·ćƒ³ć®ć€Œć‚¹ć‚æćƒ¼ćƒˆć€ćƒ”ćƒ‹ćƒ„ćƒ¼ć‹ć‚‰ć‚¢ć‚Æć‚»ć‚¹ć§ćć¾ć™ć€‚LinuxćŖć©ć®ćƒ—ćƒ©ćƒƒćƒˆćƒ•ć‚©ćƒ¼ćƒ ć§ćÆ态WL_HOME\samples\domains\medrecćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖ恋悉MedRecć‚’čµ·å‹•ć—ć¾ć™ć€‚WL_HOMEćÆ态WebLogic Platformć®ęœ€äøŠä½ć®ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ćƒ»ćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖ恧恙怂

WebLogic Server配åøƒć‚­ćƒƒćƒˆć®JDBCć‚µćƒ³ćƒ—ćƒ«

WebLogic Server恧ćÆ态åæ…要恫åæœć˜ć¦APIć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć‚’WL_HOME\samples\domains\medrecćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖć«ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć§ćć¾ć™ć€‚WL_HOMEćÆWebLogic Serverć®ęœ€äøŠä½ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ćƒ»ćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖ恧恙怂WebLogic Serverć®ć‚¹ć‚æćƒ¼ćƒˆćƒ»ćƒ”ćƒ‹ćƒ„ćƒ¼ć‹ć‚‰ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚µćƒ¼ćƒćƒ¼ć‚’čµ·å‹•ć—ć¦ć€ć‚µćƒ³ćƒ—ćƒ«ćØćć®å®Ÿč”Œę‰‹é †ć«é–¢ć™ć‚‹ęƒ…å ±ć‚’ē¢ŗčŖć§ćć¾ć™ć€‚

恓恮ćƒŖćƒŖćƒ¼ć‚¹ć§ć®ę–°ę©Ÿčƒ½ćØå¤‰ę›“ē‚¹

恓恮ćƒŖćƒŖćƒ¼ć‚¹ć«ćÆć€ę¬”ć®ę–°ć—ć„ę©Ÿčƒ½ćØå¤‰ę›“ć•ć‚ŒćŸę©Ÿčƒ½ćŒå«ć¾ć‚Œć¦ć„ć¾ć™ć€‚

WebLogic Server恮恓恮ćƒŖćƒŖćƒ¼ć‚¹ć«čæ½åŠ ć•ć‚ŒćŸę–°ę©Ÿčƒ½ć®äø€č¦§ć«ć¤ć„恦ćÆ态怎Oracle WebLogic Serverć®ę–°ę©Ÿčƒ½ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

Java EE 6 DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©

Java EE 6恧ćÆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ęŸ”č»Ÿę€§ćØē§»ę¤ę€§ć‚’向äøŠć™ć‚‹ćŸć‚ć«DataSourcećƒŖć‚½ćƒ¼ć‚¹ć‚’ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć§å®šē¾©ć™ć‚‹ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćŒęä¾›ć•ć‚Œć¾ć™ć€‚ć€ŒDataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ä½æē”Øć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

DataDirect恮Oracleć‚æ悤惗4 JDBCćƒ‰ćƒ©ć‚¤ćƒ

DataDirect恮Oracleć‚æ悤惗4 JDBCćƒ‰ćƒ©ć‚¤ćƒćÆ态ē¾åœØ态WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒćØå‘¼ć°ć‚Œć¾ć™ć€‚ć€ŽOracle WebLogic Serverć‚æ悤惗4 JDBCćƒ‰ćƒ©ć‚¤ćƒć€ć®ę–‡ę›øćÆå›žåŽć•ć‚Œć¾ć—ćŸć€‚DataDirectćƒ‰ćƒ©ć‚¤ćƒć®č©³ē“°ęƒ…å ±ćÆē¾åœØęä¾›ć—ć¦ć„ć¾ć›ć‚“ć€‚WebLogic Serverē’°å¢ƒć§ć®WebLogicćƒ–ćƒ©ćƒ³ćƒ‰ćƒ»ćƒ‰ćƒ©ć‚¤ćƒć®ę§‹ęˆę–¹ę³•ćŠć‚ˆć³ä½æē”Øę–¹ę³•ć®ęƒ…å ±ćÆ态怌WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒć€ć§å¼•ćē¶šćęä¾›ć—ć¾ć™ć€‚ćƒ‰ćƒ©ć‚¤ćƒć®å‹•ä½œć®č©³ē“°ć«é–¢ć—恦DataDirectć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’ē¢ŗčŖć™ć‚‹ć“ćØć‚’ćŠč–¦ć‚ć—ć¾ć™ć€‚http://www.datadirect.com/index.html恮怎Progress DataDirect for JDBC User's Guide Release 4.2ć€ćŠć‚ˆć³ć€ŽProgress DataDirect for JDBC Reference Release 4.2ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

RMIćƒ‰ćƒ©ć‚¤ćƒé€šäæ”恮äæč­·

RMI JDBC Securityćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æ悒čØ­å®šć—ć¦ć€DataSourceć‚Ŗ惖ć‚ø悧ć‚Æ惈ćØ恮RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆé€šäæ”ć‚’ć‚µćƒ¼ćƒćƒ¼ćƒ»ćƒ¬ćƒ™ćƒ«ć§äæč­·ć—ć¾ć™ć€‚ć€ŒWebLogic RMIćƒ‰ćƒ©ć‚¤ćƒć®ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ć®č€ƒę…®äŗ‹é …ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

非ęŽØå„Ø

weblogic.jdbc.extensionsć®ę¬”ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćØ例外ćÆ态WebLogic Server 10.3.6.0恧非ęŽØå„ØćØćŖć‚Šć¾ć—ćŸć€‚

  • weblogic.jdbc.extensions.Driverinterceptor

  • weblogic.jdbc.extensions.ConnectionDeadSQLEsception

  • weblogic.jdbc.extensions.Connection UnavailableSQLEsception

  • weblogic.jdbc.extensions.PoolDisabledSQLException

  • weblogic.jdbc.extensions.PoolLimitSQLException

  • weblogic.jdbc.extensions.PoolPermissionsSQLException

  • weblogic.jdbc.extensions.PoolUnavailableSQLException

PKĆļE©1¤1PK‰±-AOEBPS/preface.htmĻ0ļ ćÆć˜ć‚ć«

ćÆć˜ć‚ć«

恓恓恧ćÆć€ć“ć®ć‚¬ć‚¤ćƒ‰ć€ŽOracle WebLogic JDBCć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć€ć§ä½æē”Øć•ć‚Œć‚‹ć‚¢ć‚Æć‚»ć‚·ćƒ“ćƒŖćƒ†ć‚£ę©Ÿčƒ½ćŠć‚ˆć³č”ØčØ˜č¦å‰‡ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ć‚¢ć‚Æć‚»ć‚·ćƒ“ćƒŖćƒ†ć‚£ć«ć¤ć„ć¦

Oracleć®ć‚¢ć‚Æć‚»ć‚·ćƒ“ćƒŖćƒ†ć‚£ć«ć¤ć„ć¦ć®č©³ē“°ęƒ…å ±ćÆ态Oracle Accessibility Program恮Webć‚µć‚¤ćƒˆhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

Oracleć‚µćƒćƒ¼ćƒˆćøć®ć‚¢ć‚Æć‚»ć‚¹

Oracleć®ćŠå®¢ę§˜ćÆ态My Oracle Supportć«ć‚¢ć‚Æć‚»ć‚¹ć—ć¦é›»å­ć‚µćƒćƒ¼ćƒˆć‚’å—ć‘ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚č©³ē“°ęƒ…å ±ćÆhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoć‹ć€č“č¦šć«éšœå®³ć®ć‚ć‚‹ćŠå®¢ę§˜ćÆhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

č”ØčØ˜č¦å‰‡

ć“ć®ćƒžćƒ‹ćƒ„ć‚¢ćƒ«ć§ćÆꬔ恮č”ØčØ˜č¦å‰‡ć‚’ä½æē”Øć—ć¾ć™ć€‚

č¦å‰‡ę„å‘³

å¤Ŗ字

å¤Ŗ字ćÆć€ę“ä½œć«é–¢é€£ć™ć‚‹Graphical User Interface要ē“ ć€ć¾ćŸćÆęœ¬ę–‡äø­ć§å®šē¾©ć•ć‚Œć¦ć„ć‚‹ē”ØčŖžćŠć‚ˆć³ē”ØčŖžé›†ć«čØ˜č¼‰ć•ć‚Œć¦ć„ć‚‹ē”ØčŖžć‚’ē¤ŗć—ć¾ć™ć€‚

ę–œä½“

悤ć‚æćƒŖ惃ć‚ÆćÆć€ćƒ¦ćƒ¼ć‚¶ćƒ¼ćŒē‰¹å®šć®å€¤ć‚’ęŒ‡å®šć™ć‚‹ćƒ—ćƒ¬ćƒ¼ć‚¹ćƒ›ćƒ«ćƒ€ćƒ¼å¤‰ę•°ć‚’ē¤ŗć—ć¾ć™ć€‚

å›ŗå®šå¹…ćƒ•ć‚©ćƒ³ćƒˆ

å›ŗå®šå¹…ćƒ•ć‚©ćƒ³ćƒˆćÆć€ę®µč½å†…ć®ć‚³ćƒžćƒ³ćƒ‰ć€URLć€ć‚µćƒ³ćƒ—ćƒ«å†…ć®ć‚³ćƒ¼ćƒ‰ć€ē”»é¢ć«č”Øē¤ŗć•ć‚Œć‚‹ćƒ†ć‚­ć‚¹ćƒˆć€ć¾ćŸćÆå…„åŠ›ć™ć‚‹ćƒ†ć‚­ć‚¹ćƒˆć‚’ē¤ŗć—ć¾ć™ć€‚


PKröõķŌĻPK‰±-AOEBPS/programming.htm—/hŠ ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć®WebLogic JDBC恮ä½æć„ę–¹

2ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć®WebLogic JDBC恮ä½æć„ę–¹

恓恮ē« ć§ćÆ态WebLogic Serverē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć‚’ä½æē”Ø恗恦态JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć€ćƒžćƒ«ćƒćƒ»ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćŖ恩恮WebLogic Serverć®ę©Ÿčƒ½ć‚’ęœ‰åŠ¹åŒ–ć—ćŸć‚Šć€ę§‹ęˆć‚„ćƒ¢ćƒ‹ć‚æćƒ¼ć‚’č”Œć£ćŸć‚Šć™ć‚‹ę–¹ę³•ć‚’čŖ¬ę˜Žć—ć¾ć™ć€‚ć¾ćŸć€JMX APIćØWebLogic Scripting Tool (WLST)悒ä½æē”Øć—ć¦ć€åŒć˜ć‚æć‚¹ć‚Æć‚’ćƒ—ćƒ­ć‚°ćƒ©ćƒ ēš„ć«å®Ÿč”Œć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚ę§‹ęˆå¾Œć®JDBCꎄē¶šć‚³ćƒ³ćƒćƒ¼ćƒćƒ³ćƒˆćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³å†…ć§ä½æē”Øć§ćć¾ć™ć€‚

仄äø‹ć®ēÆ€ć§ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć®JDBCꎄē¶šć®ä½æē”Øę–¹ę³•ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćŠć‚ˆć³ćƒžćƒ«ćƒćƒ»ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ę§‹ęˆć®č©³ē“°ćÆ态怎Oracle WebLogic Server JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ę§‹ęˆćØē®”ē†ć€ć‚’参ē…§ć—ć¦ćć ć•ć„ć€‚

DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‹ć‚‰ć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®å–å¾—

仄äø‹ć®ēÆ€ć§ćÆć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć€ćƒžćƒ«ćƒćƒ»ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ćć‚Œćžć‚Œć«ć¤ć„ć¦ć€DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‹ć‚‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹ć‚ˆć†ć«č¦ę±‚ć™ć‚‹ę–¹ę³•ć‚’č©³ć—ćčŖ¬ę˜Žć—ć¾ć™ć€‚

DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćƒ‘ćƒƒć‚±ćƒ¼ć‚øć®ć‚¤ćƒ³ćƒćƒ¼ćƒˆ

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§DataSourceć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Ø恙悋恫ćÆ态仄äø‹ć®ć‚Æćƒ©ć‚¹ć‚’ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćƒ»ć‚³ćƒ¼ćƒ‰ć«ć‚¤ćƒ³ćƒćƒ¼ćƒˆć—ć¾ć™ć€‚

import java.sql.*;
import java.util.*;
import javax.naming.*;

DataSource悒ä½æē”Ø恗恟ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆęŽ„ē¶šć®å–å¾—

JDBCć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆē”Ø恫ꎄē¶šć‚’å–å¾—ć™ć‚‹ć«ćÆ态仄äø‹ć®ć‚³ćƒ¼ćƒ‰ć«ē¤ŗć™ć‚ˆć†ć«ć€Java Naming and Directory Interface (JNDI)惫惃ć‚Æć‚¢ćƒƒćƒ—ć‚’ä½æē”Ø恗恦DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’č¦‹ć¤ć‘ć¾ć™ć€‚


ę³Øꄏ:

ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆå“ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§JDBCꎄē¶šć‚’ä½æē”Øć™ć‚‹éš›ć€ć‚µćƒ¼ćƒćƒ¼ćØć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć®äø”ę–¹ć®CLASSPATHć«ć€åŒäø€ć®JDBCćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¹ć‚’ęŒ‡å®šć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¹ćŒäø€č‡“恗恦恄ćŖ恄ćØ态java.rmi.UnmarshalExceptionä¾‹å¤–ćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚


Context ctx = null;
  Hashtable ht = new Hashtable();
  ht.put(Context.INITIAL_CONTEXT_FACTORY,
         "weblogic.jndi.WLInitialContextFactory");
  ht.put(Context.PROVIDER_URL,
         "t3://hostname:port");
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;
  try {
    ctx = new InitialContext(ht);
    javax.sql.DataSource ds 
      = (javax.sql.DataSource) ctx.lookup ("myDataSource");
    conn = ds.getConnection();
   // You can now use the conn object to create 
   //  Statements and retrieve result sets:
    stmt = conn.createStatement();
    stmt.execute("select * from someTable");
    rs = stmt.getResultSet(); 
...
//Close JDBC objects as soon as possible
    stmt.close();
    stmt=null;
    conn.close();
    conn=null;
 }
  catch (Exception e) {
    // a failure occurred
    log message;
  }
finally {    
  try { 
    ctx.close(); 
  } catch (Exception e) {
     log message; }
  try { 
    if (rs != null) rs.close(); 
  } catch (Exception e) {  
     log message; }
  try { 
    if (stmt != null) stmt.close(); 
  } catch (Exception e) {  
     log message; }
  try { 
    if (conn != null) conn.close(); 
  } catch (Exception e) {  
     log message; }
}

(ä½æē”Ø恙悋WebLogic Serverć«åˆć‚ć›ć¦é©åˆ‡ćŖhostnamećØportē•Ŗå·ć«ē½®ćę›ćˆć¾ć™)怂


ę³Øꄏ:

前čæ°ć®ć‚³ćƒ¼ćƒ‰ć§ćÆ态JNDIć‚³ćƒ³ćƒ†ć‚­ć‚¹ćƒˆć‚’å–å¾—ć™ć‚‹ćŸć‚ć«ć€ä½æē”ØåÆčƒ½ćŖę•°ä»¶ć®ćƒ—ćƒ­ć‚·ćƒ¼ć‚øćƒ£ć®1恤恌ä½æē”Øć•ć‚Œć¦ć„ć¾ć™ć€‚JNDIć®č©³ē“°ćÆ态怎Oracle WebLogic Server JNDIć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


ꎄē¶šćƒŖć‚Æć‚Øć‚¹ćƒˆå¤±ę•—ę™‚ć«ē”Ÿć˜ć‚‹åÆčƒ½ę€§ć®ć‚ć‚‹ä¾‹å¤–

weblogic.jdbc.extensionsćƒ‘ćƒƒć‚±ćƒ¼ć‚ø恫ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ćƒŖć‚Æć‚Øć‚¹ćƒˆć®å¤±ę•—ę™‚ć«ć‚¹ćƒ­ćƒ¼ć•ć‚Œå¾—ć‚‹ä»„äø‹ć®ä¾‹å¤–ćŒå«ć¾ć‚Œć¦ć„ć¾ć™ć€‚å„ä¾‹å¤–ćÆ态java.sql.SQLExceptionć®ę‹”å¼µć§ć™ć€‚

  • ConnectionDeadSQLException - äŗˆē“„ć•ć‚ŒćŸęŽ„ē¶šć«åÆ¾ć™ć‚‹ęŽ„ē¶šćƒ†ć‚¹ćƒˆć«å¤±ę•—ć—ćŸć“ćØćŒåŽŸå› ć§ć€ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ćƒŖć‚Æć‚Øć‚¹ćƒˆćŒå¤±ę•—ć™ć‚‹ćØē”Ÿęˆć•ć‚Œć¾ć™ć€‚通åøøćÆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚µćƒ¼ćƒćƒ¼ćŒåˆ©ē”Ø恧恍ćŖć„å “åˆć«ē”Ÿć˜ć¾ć™ć€‚

  • ConnectionUnavailableSQLException - å‰²ć‚Šå½“ć¦ć‚‰ć‚Œć‚‹ć¹ććƒ—ćƒ¼ćƒ«å†…ć«ē¾åœØ利ē”Øć§ćć‚‹ęŽ„ē¶šćŒćŖć‹ć£ćŸć“ćØćŒåŽŸå› ć§ć€ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ćƒŖć‚Æć‚Øć‚¹ćƒˆćŒå¤±ę•—ć™ć‚‹ćØē”Ÿęˆć•ć‚Œć¾ć™ć€‚ć“ć‚ŒćÆäø€ę™‚ēš„ćŖć‚Øćƒ©ćƒ¼ć§ć‚ć£ć¦ć€ćƒ—ćƒ¼ćƒ«å†…ć®ęŽ„ē¶šćŒć™ć¹ć¦ä½æē”Øäø­ć®å “åˆć«ē”Ÿęˆć•ć‚Œć¾ć™ć€‚ć¾ćŸć€ęŽ„ē¶šćŒćƒ†ć‚¹ćƒˆäø­ć§ć‚ć‚‹ćŸć‚ć«ä½æē”Ø恧恍ćŖć„å “åˆć«ć‚‚ć‚¹ćƒ­ćƒ¼ć•ć‚Œć‚‹ć“ćØćŒć‚ć‚Šć¾ć™ć€‚

  • PoolDisabledSQLException - JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćŒē®”ē†č€…ć«ć‚ˆć£ć¦ē„”åŠ¹ć«ć•ć‚ŒćŸć“ćØćŒåŽŸå› ć§ć€ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ćƒŖć‚Æć‚Øć‚¹ćƒˆćŒå¤±ę•—ć™ć‚‹ćØē”Ÿęˆć•ć‚Œć¾ć™ć€‚

  • PoolLimitSQLException - HighestNumWaiters态ConnectionReserveTimeoutSecondsćŖć©ć®ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć«ć¤ć„ć¦ę§‹ęˆć•ć‚ŒćŸć—ćć„å€¤ćŒåŽŸå› ć§ć€ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ćƒŖć‚Æć‚Øć‚¹ćƒˆćŒå¤±ę•—ć™ć‚‹ćØē”Ÿęˆć•ć‚Œć¾ć™ć€‚

  • PoolPermissionsSQLException - ꎄē¶šć‚’å–å¾—ć™ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ćƒŖć‚Æć‚Øć‚¹ćƒˆć§ć€(ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£)čŖčØ¼ć¾ćŸćÆčŖåÆ惁悧惃ć‚ÆćŒå¤±ę•—ć™ć‚‹ćØē”Ÿęˆć•ć‚Œć¾ć™ć€‚

ćƒ—ćƒ¼ćƒ«ć•ć‚ŒćŸęŽ„ē¶šć®åˆ¶ē“„


ę³Øꄏ:

ē‰¹å®šć®Oracle JDBCę‹”å¼µę©Ÿčƒ½ć¾ćŸćÆć€ä»–ć®ćƒ‰ćƒ©ć‚¤ćƒć§ä½æē”ØåÆčƒ½ćŖęؙęŗ–ä»„å¤–ć®ę–¹ę³•ć«ć‚ˆć‚Šć€ęŽ„ē¶šć®å‹•ä½œćŒę°øē¶šēš„ć«å¤‰ę›“ć•ć‚Œć€ćƒ—ćƒ¼ćƒ«ć•ć‚ŒćŸęŽ„ē¶šć®å°†ę„ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼ćŒćć‚Œć‚’ē¶™ę‰æ恙悋恓ćØćŒć‚ć‚Šć¾ć™ć€‚WebLogic ServerćÆ态åÆčƒ½ćŖå “åˆć«ćÆć€ć“ć®ć‚ˆć†ćŖēØ®é”žć®å‘¼å‡ŗ恗恋悉ꎄē¶šć‚’äæč­·ć—ć‚ˆć†ćØć—ć¾ć™ć€‚


ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹å†…ć®ćƒ—ćƒ¼ćƒ«ć•ć‚ŒćŸęŽ„ē¶šć‚’ä½æē”Øć—ć¦ć„ć‚‹å “åˆć«ć€DBMSå›ŗęœ‰ć®SQLć‚³ćƒ¼ćƒ‰ćŒå®Ÿč”Œć•ć‚Œć‚‹ć“ćØćŒć‚ć‚Šć¾ć™ć€‚ć“ć‚ŒćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚’å¤‰ę›“恙悋悂恮恧恂悊态WebLogic ServerćŠć‚ˆć³JDBCćƒ‰ćƒ©ć‚¤ćƒć‹ć‚‰ćÆčŖč­˜ć•ć‚Œć¾ć›ć‚“怂ꎄē¶šćŒćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć«čæ”ć•ć‚ŒćŸćØćć«ć€ćć®ęŽ„ē¶šć®ē‰¹ę€§ć®čØ­å®šćŒęœ‰åŠ¹ćŖēŠ¶ę…‹ć«ęˆ»ć‚‰ćŖ恄恓ćØćŒć‚ć‚Šć¾ć™ć€‚ćŸćØ恈恰Sybase DBMS恧态怌set rowcount 3 select * from y怍ćŖ恩恮ꖇ悒ä½æē”Ø恙悋ćØ态ꎄē¶šć«åÆ¾ć™ć‚‹å¾Œē¶šć®å•åˆć›ć§ćÆęœ€å¤§ć§3č”Œć¾ć§ć—ć‹čæ”ć•ć‚Œć¾ć›ć‚“ć€‚ęŽ„ē¶šćŒćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć«čæ”ć•ć‚Œć¦ć‹ć‚‰å†åˆ©ē”Øć•ć‚ŒćŸå “åˆć€éøꊞåÆ¾č±”ć®č”Ø恫500ć®č”ŒćŒć‚ć£ć¦ć‚‚ć€ęŽ„ē¶šć®ę¬”ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼ć«ćÆ引ē¶šć3č”Œć®ćæ恌čæ”ć•ć‚Œć¾ć™ć€‚

恻ćØć‚“ć©ć®å “åˆć€åŒć˜ēµęžœć‚’ć‚‚ćŸć‚‰ć™ć“ćØ恌恧恍悋ęؙęŗ–恮JDBCć‚³ćƒ¼ćƒ‰ćŒå­˜åœØć—ć¾ć™ć€‚ć“ć®ä¾‹ć§ćÆ态set rowcountć®ä»£ć‚ć‚Šć«setMaxRows()悒ä½æē”Øć§ćć¾ć™ć€‚DBMSå›ŗęœ‰ć®SQLć‚³ćƒ¼ćƒ‰ć®ä»£ć‚ć‚Šć«ęؙęŗ–恮JDBCć‚³ćƒ¼ćƒ‰ć‚’ä½æē”Ø恙悋恓ćØć‚’ćŠč–¦ć‚ć—ć¾ć™ć€‚ęؙęŗ–恮JDBC呼å‡ŗ恗悒ä½æē”Ø恗恦ꎄē¶šć‚’å¤‰ę›“恙悋ćØ态ꎄē¶šćŒćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć«čæ”ć•ć‚ŒćŸę™‚ē‚¹ć§ęŽ„ē¶šćŒęؙęŗ–恮ēŠ¶ę…‹ć«ęˆ»ć‚Šć¾ć™ć€‚

ꎄē¶šć‚’å¤‰ę›“恙悋DBMSå›ŗęœ‰ć®SQLć‚³ćƒ¼ćƒ‰ć‚’ä½æē”Øć™ć‚‹å “åˆćÆ态ꎄē¶šć‚’ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć«čæ”ć™å‰ć«ć€ćć®čØ­å®šć‚’å—ć‘å…„ć‚ŒåÆčƒ½ćŖēŠ¶ę…‹ć«ęˆ»ć™åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚¹ć‚³ćƒ¼ćƒ—ć®ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ć®ęŽ„ē¶šć®å–å¾—

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚¹ć‚³ćƒ¼ćƒ—ć®ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹ć«ćÆ态怎Oracle WebLogic Server JDBCćƒ‡ćƒ¼ć‚æćƒ»ćƒ™ćƒ¼ć‚¹ć®ę§‹ęˆćŠć‚ˆć³ē®”ē†ć€ć®ćƒ‘ćƒƒć‚±ćƒ¼ć‚øåŒ–ć•ć‚ŒćŸJDBCćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć‹ć‚‰ć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®å–å¾—ć«é–¢ć™ć‚‹é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

PKNG œ/—/PK‰±-A OEBPS/toc.ncxŲ'š Oracle WebLogic Server JDBCのプログラミング, 12cリリース1 (12.1.1) Cover 目次 Oracle Fusion Middleware Oracle WebLogic Server JDBCのプログラミング, 12cリリース1 (12.1.1) はじめに 概要とロードマップ アプリケーションでのWebLogic JDBCの使い方 DataSourceリソース定義の使用 JDBCアプリケーションのパフォーマンス・チューニング WebLogicブランドDataDirectドライバの使用 WebLogicラッパー・ドライバの使い方 JDBCドライバでのAPI拡張機能の使い方 データ・ソースからの物理的な接続の取得 WebLogic ServerにおけるRowSetの使い方 JDBCのトラブルシューティング Copyright PKwöūŹŻŲPK‰±-AOEBPS/troubleshooting.htm*ąÕ JDBCć®ćƒˆćƒ©ćƒ–ćƒ«ć‚·ćƒ„ćƒ¼ćƒ†ć‚£ćƒ³ć‚°

10 JDBCć®ćƒˆćƒ©ćƒ–ćƒ«ć‚·ćƒ„ćƒ¼ćƒ†ć‚£ćƒ³ć‚°

恓恮ē« ć§ćÆ态JDBCć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’é–‹ē™ŗ恙悋際恮äø€čˆ¬ēš„ćŖå•é”Œć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

UNIX恧恮Oracle Databaseé–¢é€£ć®å•é”Œ

ä½æē”Øć™ć‚‹ć‚¹ćƒ¬ćƒƒćƒ‡ć‚£ćƒ³ć‚°ćƒ»ćƒ¢ćƒ‡ćƒ«ć‚’ē¢ŗčŖć—ć¦ćć ć•ć„ć€‚Oraclećƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć™ć‚‹å “åˆćÆć€ćƒć‚¤ćƒ†ć‚£ćƒ–ćƒ»ć‚¹ćƒ¬ćƒƒćƒ‰ć‚’ä½æē”Ø恙悋恓ćØć‚’ćŠč–¦ć‚ć—ć¾ć™ć€‚ćƒć‚¤ćƒ†ć‚£ćƒ–ćƒ»ć‚¹ćƒ¬ćƒƒćƒ‰ć®ä½æē”Øć‚’ęŒ‡å®šć™ć‚‹ć«ćÆ态Javać‚’čµ·å‹•ć™ć‚‹ćØćć«-nativećƒ•ćƒ©ć‚°ć‚’čæ½åŠ ć—ć¾ć™ć€‚

UNIXć§ć®ć‚¹ćƒ¬ćƒƒćƒ‰é–¢é€£ć®å•é”Œ

UNIX恧ćÆ态悰ćƒŖćƒ¼ćƒ³ćƒ»ć‚¹ćƒ¬ćƒƒćƒ‰ćØćƒć‚¤ćƒ†ć‚£ćƒ–ćƒ»ć‚¹ćƒ¬ćƒƒćƒ‰ćØ恄恆2ć¤ć®ć‚¹ćƒ¬ćƒƒćƒ‡ć‚£ćƒ³ć‚°ćƒ»ćƒ¢ćƒ‡ćƒ«ć‚’åˆ©ē”Øć§ćć¾ć™ć€‚č©³ē“°ćÆ态Solarisć‚Ŗćƒšćƒ¬ćƒ¼ćƒ†ć‚£ćƒ³ć‚°ē’°å¢ƒć®JDK (http://www.oracle.com/technetwork/java/index.html)ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

ä½æē”Øć—ć¦ć„ć‚‹ć‚¹ćƒ¬ćƒƒćƒ‰ć®ēخ锞ćÆ态THREADS_TYPEē’°å¢ƒå¤‰ę•°ć‚’čŖæć¹ć‚‹ć“ćØ恧ē¢ŗčŖć§ćć¾ć™ć€‚ć“ć®å¤‰ę•°ćŒčØ­å®šć•ć‚Œć¦ć„ćŖć„å “åˆćÆ态Javać‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć®binćƒ‡ć‚£ćƒ¬ć‚Æ惈ćƒŖć«ć‚ć‚‹ć‚·ć‚§ćƒ«ćƒ»ć‚¹ć‚ÆćƒŖ惗惈悒čŖæć¹ć¦ćć ć•ć„ć€‚

äø€éƒØć®å•é”ŒćÆć€å„ć‚Ŗćƒšćƒ¬ćƒ¼ćƒ†ć‚£ćƒ³ć‚°ćƒ»ć‚·ć‚¹ćƒ†ćƒ ć®JVMć§ć®ć‚¹ćƒ¬ćƒƒćƒ‰ć®å®Ÿč£…ć«é–¢é€£ć—ć¦ć„ć¾ć™ć€‚ć™ć¹ć¦ć®JVM恧态ć‚Ŗćƒšćƒ¬ćƒ¼ćƒ†ć‚£ćƒ³ć‚°ćƒ»ć‚·ć‚¹ćƒ†ćƒ å›ŗęœ‰ć®ć‚¹ćƒ¬ćƒƒćƒ‰ć®å•é”ŒćŒē­‰ć—ćé©åˆ‡ć«å‡¦ē†ć•ć‚Œć‚‹ć‚ć‘恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ä»„äø‹ć«ć€ć‚¹ćƒ¬ćƒƒćƒ‰é–¢é€£ć®å•é”Œć‚’é˜²ę­¢ć™ć‚‹ćŸć‚ć®ćƒ’ćƒ³ćƒˆć‚’ē“¹ä»‹ć—ć¾ć™ć€‚

JDBCć‚Ŗ惖ć‚ø悧ć‚Æ惈恮ć‚Æćƒ­ćƒ¼ć‚ŗ

ćƒ—ćƒ­ć‚°ćƒ©ćƒ ćŒåŠ¹ēŽ‡ēš„ć«å®Ÿč”Œć•ć‚Œć‚‹ć‚ˆć†ć«ć€Connection态Statement态ResultSetćŖ恩恮JDBCć‚Ŗ惖ć‚ø悧ć‚Æ惈ćÆåæ…恚finally惖惭惃ć‚Æ恧ć‚Æćƒ­ćƒ¼ć‚ŗ恙悋恓ćØć‚’ćŠč–¦ć‚ć—ć¾ć™ć€‚ę¬”ć«ć€äø€čˆ¬ēš„ćŖä¾‹ć‚’ē¤ŗć—ć¾ć™ć€‚

例10-1 JDBCć‚Ŗ惖ć‚ø悧ć‚Æ惈恮ć‚Æćƒ­ćƒ¼ć‚ŗ

try {

Driver d = 
(Driver)Class.forName("oracle.jdbc.OracleDriver").newInstance();

Connection conn = d.connect("jdbc:weblogic:oracle:myserver",
                                  "scott", "tiger");

    Statement stmt = conn.createStatement();
    stmt.execute("select * from emp");
    ResultSet rs = stmt.getResultSet();
    // do work

    }

    catch (Exception e) {

      // handle any exceptions as appropriate

    }

    finally {

      try {rs.close();}
      catch (Exception rse) {}
      try {stmt.close();}
      catch (Exception sse) {}
      try {conn.close();
      catch (Exception cse) {}

    }

JDBCć‚Ŗ惖ć‚ø悧ć‚Æ惈恮ē “ę£„

ć¾ćŸć€ę¬”ć®ć‚ˆć†ćŖ処ē†ć‚‚č”Œć‚ćŖ恄恧恏恠恕恄怂ē “ę£„ć•ć‚ŒćŸJDBCć‚Ŗ惖ć‚ø悧ć‚ÆćƒˆćŒä½œęˆć•ć‚Œć¾ć™ć€‚

//Do not do this.
stmt.executeQuery();
rs = stmt.getResultSet();

//Do this instead
rs = stmt.executeQuery();

äøŠčØ˜ć®ä¾‹ć®ęœ€åˆć®č”Œć§ćÆ态ē “ę£„ć•ć‚Œć¦ćŠć‚Šć€ć™ćć«ć‚¬ćƒ™ćƒ¼ć‚øćƒ»ć‚³ćƒ¬ć‚Æć‚·ćƒ§ćƒ³ćŒč”Œć‚ć‚Œć‚‹åÆčƒ½ę€§ć®ć‚ć‚‹ēµęžœć‚»ćƒƒćƒˆćŒä½œęˆć•ć‚Œć¾ć™ć€‚

Microsoft SQL Serverć§ć®ćƒć‚¹ćƒˆć•ć‚ŒćŸćƒˆćƒŖć‚¬ćƒ¼ć®ä½æē”Ø

仄äø‹ć®ēÆ€ć§ćÆ态Microsoft SQL Serverćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ćƒć‚¹ćƒˆć•ć‚ŒćŸćƒˆćƒŖć‚¬ćƒ¼ć‚’ä½æē”Øć™ć‚‹å “åˆć®ćƒˆćƒ©ćƒ–ćƒ«ć‚·ćƒ„ćƒ¼ćƒ†ć‚£ćƒ³ć‚°ęƒ…å ±ć‚’ē¤ŗć—ć¾ć™ć€‚

ć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ćƒ‰ćƒ©ć‚¤ćƒć®č©³ē“°ćÆ态怌Oracle Fusion Middlewareć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ć‚·ć‚¹ćƒ†ćƒ ę§‹ęˆć€ćƒšćƒ¼ć‚ø(http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.htmlć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

ćƒć‚¹ćƒˆćƒ»ćƒ¬ćƒ™ćƒ«ć®č¶…éŽ

SQL Serverćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ćƒć‚¹ćƒˆćƒ»ćƒ¬ćƒ™ćƒ«ćŒč¶…éŽć—ćŸć“ćØ悒ē¤ŗ恙SQL Serverć‚Øćƒ©ćƒ¼ćŒē™ŗē”Ÿć™ć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚

例:

   CREATE TABLE EmployeeEJBTable (name varchar(50) not null,salary int, card     
varchar(50), primary key (name))

   CREATE TABLE CardEJBTable (cardno varchar(50) not null, employee    
varchar(50), primary key (cardno), foreign key (employee) references    
EmployeeEJB Table(name) on delete cascade)
   CREATE TRIGGER  card on EmployeeEJBTable for delete as delete    CardEJBTable  
where employee in (select name from deleted)

   CREATE TRIGGER  emp on CardEJBTable for delete as delete EmployeeEJBTable    
where card in (select cardno from deleted)

   insert into EmployeeEJBTable values ('1',1000,'1')
   insert into CardEJBTable values ('1','1')
   DELETE FROM CardEJBTable WHERE cardno = 1

仄äø‹ć®ć‚ˆć†ćŖć‚Øćƒ©ćƒ¼ćƒ»ćƒ”ćƒƒć‚»ćƒ¼ć‚ø恫ćŖć‚Šć¾ć™ć€‚

Maximum stored procedure, function, trigger, or view nesting level exceeded  (limit 32).

ć“ć®å•é”Œć‚’å›žéæ恙悋恫ćÆć€ę¬”ć®ć‚ˆć†ć«ć—ć¾ć™ć€‚

  1. 仄äø‹ć®ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’å®Ÿč”Œć—ć¦ć€ćƒć‚¹ćƒˆć•ć‚ŒćŸćƒˆćƒŖć‚¬ćƒ¼ć®ćƒ¬ćƒ™ćƒ«ć‚’0恫ćƒŖć‚»ćƒƒćƒˆć—ć¾ć™ć€‚

    -- Start batch 
    exec sp_configure 'nested triggers', 0  -- This set's the new value. 
    reconfigure with override -- This makes the change permanent 
    -- End batch 
    
  2. 仄äø‹ć®ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’å®Ÿč”Œć—ć¦ć€SQL Server恮ē¾åœØć®å€¤ć‚’ē¢ŗčŖć—ć¾ć™ć€‚

    exec sp_configure 'nested triggers' 
    

惈ćƒŖć‚¬ćƒ¼ćØEJB恮ä½æē”Ø

EJBćØMicrosoftćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć™ć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć€execute()ćƒ”ć‚½ćƒƒćƒ‰ć‹ć‚‰ć®ęˆ»ć‚Šć‚³ćƒ¼ćƒ‰ćŒ0态äŗˆęœŸć—ć¦ć„ćŸå€¤ćŒ1 (1ćƒ¬ć‚³ćƒ¼ćƒ‰å‰Šé™¤)ćØ恄恆ēŠ¶ę³ćŒē™ŗē”Ÿć™ć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚

例:

   CREATE TABLE EmployeeEJBTable (name varchar(50) not null,salary int, card     
varchar(50), primary key (name))

   CREATE TABLE CardEJBTable (cardno varchar(50) not null, employee    
varchar(50), primary key (cardno), foreign key (employee) references    
EmployeeEJB Table(name) on delete cascade)
   CREATE TRIGGER  emp on CardEJBTable for delete as delete EmployeeEJBTable    
where card in (select cardno from deleted)

   insert into EmployeeEJBTable values ('1',1000,'1')
   insert into CardEJBTable values ('1','1')
   DELETE FROM CardEJBTable WHERE cardno = 1
The EJB code assumes that the record is not found and throws an appropriate error 
message. 
To work around this issue, run the following script:
   exec sp_configure 'show advanced options', 1
   reconfigure with override
   exec sp_configure 'disallow results from triggers',1
   reconfigure with override
PKC>¦$**PK‰±-AOEBPS/content.opf”^ē Oracle WebLogic Server JDBCのプログラミング, 12cリリース1 (12.1.1) en-US b65895 Oracle Corporation Oracle Corporation Oracle WebLogic Server JDBCのプログラミング, 12cリリース1 (12.1.1) 2012-01-12T11:50:48Z Oracle WebLogic Server JDBCのプログラミング, 12cリリース1 (12.1.1) PK¾u“¦”PK‰±-AOEBPS/ds_annotation.htm€’ DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ä½æē”Ø

3 DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ä½æē”Ø

恓恮ē« ć§ćÆ态Java EE DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ä½œęˆę–¹ę³•ćØä½æē”Øę–¹ę³•ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

Java EE DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ä½æē”Ø

DataSourcećƒŖć‚½ćƒ¼ć‚¹ćÆ态JDBC APIć§ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‚’č­˜åˆ„ć—ć¦ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćŸć‚ć«åæ…要ćŖ态äø€é€£ć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚’čØ­å®šć™ć‚‹ćŸć‚ć«ä½æē”Øć•ć‚Œć¾ć™ć€‚ć“ć‚Œć‚‰ć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć«ćÆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚µćƒ¼ćƒćƒ¼ć®URLć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®åå‰ć€ć‚µćƒ¼ćƒćƒ¼ćØ恮通äæ”恫ä½æē”Ø恙悋惍惃惈ćƒÆćƒ¼ć‚Æćƒ»ćƒ—ćƒ­ćƒˆć‚³ćƒ«ćŖć©ć®ęƒ…å ±ćŒå«ć¾ć‚Œć¾ć™ć€‚DataSourceć‚Ŗ惖ć‚ø悧ć‚Æ惈ćÆ态Java Naming and Directory Interface (JNDI)ćƒćƒ¼ćƒŸćƒ³ć‚°ćƒ»ć‚µćƒ¼ćƒ“ć‚¹ć«ē™»éŒ²ć•ć‚Œć¾ć™ć€‚ć“ć‚Œć«ć‚ˆć‚Šć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćŒJNDI API悒ä½æē”Ø恗恦DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć‚¢ć‚Æć‚»ć‚¹ć—ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ęŽ„ē¶šć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚

Java EE 6ć‚ˆć‚Šć‚‚å‰ćÆ态怎Oracle WebLogic Server JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ę§‹ęˆćØē®”ē†ć€ć®WebLogic JDBCćƒŖć‚½ćƒ¼ć‚¹ć®ę§‹ęˆć«é–¢ć™ć‚‹é …ć§čŖ¬ę˜Žć™ć‚‹ć‚ˆć†ć«ć€DataSourcećƒŖć‚½ćƒ¼ć‚¹ćÆē®”ē†č€…ć«ć‚ˆć£ć¦ä½œęˆć•ć‚Œć¦ć„ć¾ć—ćŸć€‚Java EE 6恧ćÆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ęŸ”č»Ÿę€§ćØē§»ę¤ę€§ć‚’向äøŠć™ć‚‹ćŸć‚ć«DataSourcećƒŖć‚½ćƒ¼ć‚¹ć‚’ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć§å®šē¾©ć™ć‚‹ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćŒęä¾›ć•ć‚Œć¾ć™ć€‚

DataSource悒äø€ę„ć«č­˜åˆ„恙悋name要ē“ ćŒJNDI恫ē™»éŒ²ć•ć‚Œć¾ć™ć€‚name要ē“ ć«ęŒ‡å®šć•ć‚Œć‚‹å€¤ćÆć€ćƒćƒ¼ćƒ ć‚¹ćƒšćƒ¼ć‚¹ćƒ»ć‚¹ć‚³ćƒ¼ćƒ—ć§é–‹å§‹ć—ć¾ć™ć€‚Java EE 6恫ćÆę¬”ć®ć‚¹ć‚³ćƒ¼ćƒ—ćŒć‚ć‚Šć¾ć™ć€‚

DataSource定ē¾©ć‚’ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć§å®šē¾©ć™ć‚‹ć«ćÆć€ę¬”ć®ć„ćšć‚Œć‹ć®ę–¹ę³•ć‚’ä½æē”Øć—ć¾ć™ć€‚

ć‚¢ćƒŽćƒ†ćƒ¼ć‚·ćƒ§ćƒ³ć‚’ä½æē”Ø恙悋DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ä½œęˆ

javax.annotation.sqlćƒ‘ćƒƒć‚±ćƒ¼ć‚ø恧ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć€ć‚µćƒ¼ćƒ–ćƒ¬ćƒƒćƒˆć¾ćŸćÆEnterprise JavaBeans (EJB)ćŖć©ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚³ćƒ³ćƒćƒ¼ćƒćƒ³ćƒˆćƒ»ć‚Æćƒ©ć‚¹ć«DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć‚’定ē¾©ć™ć‚‹ćŸć‚ć«ć€@DataSourceDefinitionćØ@DataSourceDefinitionsćŒęä¾›ć•ć‚Œć¾ć™ć€‚

DataSourcećƒŖć‚½ćƒ¼ć‚¹ćŒć‚¤ćƒ³ć‚ø悧ć‚Æ惈恕悌悋ćØ态DataSourceć‚Ŗ惖ć‚ø悧ć‚ÆćƒˆćŒä½œęˆć•ć‚Œć€JNDI恫ē™»éŒ²ć•ć‚Œć¾ć™ć€‚ć‚¢ćƒŽćƒ†ćƒ¼ć‚·ćƒ§ćƒ³č¦ē“ ć‚’ä½æē”Ø恗恦DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ę§‹ęˆć—ć¾ć™ć€‚ćć®ä»–ć®Java EE and WebLogicę§‹ęˆå±žę€§ćÆć€ć‚¢ćƒŽćƒ†ćƒ¼ć‚·ćƒ§ćƒ³ć®properties要ē“ ć«ęŒ‡å®šć§ćć¾ć™ć€‚ć€ŒWebLogicę§‹ęˆå±žę€§ć®ä½æē”Øć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

@DataSourceDefinition悒ä½æē”Ø恗恦1恤恮datasource定ē¾©ć‚’ä½œęˆć—ć¾ć™ć€‚ä¾‹:

. . .

@DataSourceDefinition(
name = "java:module/ExampleDS",
     className = "org.apache.derby.jdbc.ClientDataSource",
     portNumber = 1527,
     serverName = "localhost",
     databaseName = "exampleDB",
     user = "examples",
     password = "examples",
     properties={"create=true", "weblogic.TestTableName=SQL SELECT 1 FROM SYS.SYSTABLES"})

@WebServlet("/dataSourceServlet")
public class DataSourceServlet extends HttpServlet {
 
 . . .
 
  @Resource(lookup = "java:module/ExampleDS")

. . .

@DataSourceDefinitions悒ä½æē”Ø恗恦複ꕰ恮datasource定ē¾©ć‚’ä½œęˆć—ć¾ć™ć€‚ä¾‹:

. . .

@DataSourceDefinitions(
      value = {
 
        @DataSourceDefinition(name = "java:app/env/DS1",
           minPoolSize = 0,
           initialPoolSize = 0,
           className = "org.apache.derby.jdbc.ClientXADataSource",
           portNumber = 1527,
           serverName = "localhost",
           user = "examples",
           password = "examples",
           databaseName = "exampleDB",
           properties={"create=true", "weblogic.TestTableName=SQL SELECT 1 FROM SYS.SYSTABLES"}
                   ),
 
        @DataSourceDefinition(name = "java:comp/env/DS2",
           minPoolSize = 0,
           initialPoolSize = 0,
           className = "org.apache.derby.jdbc.ClientDataSource",
           portNumber = 1527,
           serverName = "localhost",
           user = "examples",
           password = "examples",
           databaseName = "examplesDB",
           properties={"create=true", "weblogic.TestTableName=SQL SELECT 1 FROM SYS.SYSTABLES"}
        )
      }
   )

. . .

ć‚µćƒ³ćƒ—ćƒ«å…Ø体ćÆ态WebLogic Serverć‚³ćƒ¼ćƒ‰ä¾‹ć®@DataSourceDefinitionć‚¢ćƒŽćƒ†ćƒ¼ć‚·ćƒ§ćƒ³ć‚’ä½æē”Ø恙悋DataSourceć®ä½œęˆć«é–¢ć™ć‚‹é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

ćƒ‡ćƒ—ćƒ­ć‚¤ćƒ”ćƒ³ćƒˆčؘčæ°å­ć‚’ä½æē”Ø恙悋DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ä½œęˆ

application.xml态application-client.xml态web.xmlćŠć‚ˆć³ejb-jar.xmlćƒ•ć‚”ć‚¤ćƒ«ć§ćƒ‡ćƒ—ćƒ­ć‚¤ćƒ”ćƒ³ćƒˆčؘčæ°å­ć‚’ä½æē”Ø恗恦态DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć‚’ä½œęˆć§ćć¾ć™ć€‚ä¾‹:

. . .

 <data-source>
     <name>java:module/ExampleDS</name>
     <class-name>org.apache.derby.jdbc.ClientDataSource</class-name>
     <server-name>localhost</server-name>
     <port-number>1527</port-number>
     <database-name>exampleDB</database-name>
     <user>examples</user>
     <password>examples</password>
     <property>
       <name>create</name>
       <value>true</value>
     </property>
     <property>
       <name>weblogic.TestTableName</name>
       <value>SQL SELECT 1 FROM SYS.SYSTABLES</value>
     </property>
   </data-source>
. . .

DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ä½æē”Øę™‚ć®å®Ÿč£…ć®č€ƒę…®äŗ‹é …

ꬔ恮項恧ćÆ态DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć‚’ä½œęˆćŠć‚ˆć³ä½æē”Ø恙悋ćØćć«č€ƒę…®ć™ć‚‹åæ…č¦ćŒć‚ć‚‹å®Ÿč£…ć®č©³ē“°ć«ć¤ć„恦čŖ¬ę˜Žć—ć¾ć™ć€‚

ćƒćƒ¼ćƒŸćƒ³ć‚°ćƒ»ćƒ«ćƒ¼ćƒ«

恓恓恧ćÆć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ćƒćƒ¼ćƒŸćƒ³ć‚°ćƒ»ćƒ«ćƒ¼ćƒ«ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚


ę³Øꄏ:

WebLogic Server 12.1.1ć‚ˆć‚Šć‚‚å‰ć®ćƒćƒ¼ć‚øćƒ§ćƒ³ćØJava EE ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ćƒćƒ¼ćƒŸćƒ³ć‚°ćƒ»ćƒ«ćƒ¼ćƒ«ć«ćÆäŗ’ę›ę€§ćŒć‚ć‚Šć¾ć™ć€‚ę—¢å­˜ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćÆć€ä»„å‰ć®ćƒŖćƒŖćƒ¼ć‚¹ć‹ć‚‰ć‚¢ćƒƒćƒ—ć‚°ćƒ¬ćƒ¼ćƒ‰ć™ć‚‹ćŸć‚ć«ćƒćƒ¼ćƒŸćƒ³ć‚°ćƒ»ćƒ«ćƒ¼ćƒ«ć‚’å¤‰ę›“ć™ć‚‹åæ…要ćÆć‚ć‚Šć¾ć›ć‚“ć€‚


WebLogicćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ćƒćƒ¼ćƒŸćƒ³ć‚°ćƒ»ćƒ«ćƒ¼ćƒ«

WebLogic Server 12.1.1ć‚ˆć‚Šć‚‚å‰ć®ćƒŖćƒŖćƒ¼ć‚¹ć§ć®ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®åå‰ć«ćÆę¬”ć®ćƒ«ćƒ¼ćƒ«ćŒä½æē”Øć•ć‚Œć¾ć™ć€‚

  • dsname: ć‚·ć‚¹ćƒ†ćƒ ćƒ»ćƒŖć‚½ćƒ¼ć‚¹ć®JDBCčؘčæ°å­(config/jdbc/*-jdbc.xml)

  • module@dsname: ć‚¹ć‚æćƒ³ćƒ‰ć‚¢ćƒ­ćƒ³ćƒ»ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚¹ć‚³ćƒ¼ćƒ—ć®JDBCčؘčæ°å­

  • application@module@dsname: EARå†…ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚¹ć‚³ćƒ¼ćƒ—ć®JDBCčؘčæ°å­

Java EEćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ćƒćƒ¼ćƒŸćƒ³ć‚°ćƒ»ćƒ«ćƒ¼ćƒ«

Java EEćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®åå‰ć«ćÆę¬”ć®ćƒ«ćƒ¼ćƒ«ćŒä½æē”Øć•ć‚Œć¾ć™ć€‚

  • appname@modulename@componentname@dsname: ć‚³ćƒ³ćƒćƒ¼ćƒćƒ³ćƒˆćƒ»ćƒ¬ćƒ™ćƒ«

  • appname@modulename@dsname: ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ćƒ»ćƒ¬ćƒ™ćƒ«

  • appname@dsname: ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ćƒ¬ćƒ™ćƒ«

  • dsname: ć‚°ćƒ­ćƒ¼ćƒćƒ«

Java EE DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ćØWebLogicćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćƒ»ćƒŖć‚½ćƒ¼ć‚¹ć®ćƒžćƒƒćƒ”ćƒ³ć‚°

č”Ø3-1ćÆ态Java EE DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®č¦ē“ ćØWebLogic ServerćƒŖć‚½ćƒ¼ć‚¹ć‚’ć©ć®ć‚ˆć†ć«ćƒžćƒƒćƒ”ćƒ³ć‚°ć™ć‚‹ć‹ć‚’ē¤ŗć—ć¾ć™ć€‚

č”Ø3-1 DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ćØWebLogic ServerćƒŖć‚½ćƒ¼ć‚¹ć®ćƒžćƒƒćƒ”ćƒ³ć‚°

DataSourceBeanćƒ‡ćƒ•ć‚©ćƒ«ćƒˆå€¤WebLogicćƒŖć‚½ćƒ¼ć‚¹

String name()

åæ…é ˆ

JDBCDataSourceParamsBean.setJndiName

String className()

åæ…é ˆ

JDBCDriverParamsBean.setDriverName

String description()

""

äøä½æē”Ø

String url()

""

JDBCDriverParamsBean.setUrl

String user()

""

JDBCDriverParamsBean.getProperties()恫čæ½åŠ 

String password()

""

JDBCDriverParamsBean.setPassword

String databaseName()

""

URL恮ē”Ÿęˆć«ä½æē”Ø(properties恫čæ½åŠ )

int portNumber()

-1

URL恮ē”Ÿęˆć«ä½æē”Ø(properties恫čæ½åŠ )

String serverName()

"localhost"

URL恮ē”Ÿęˆć«ä½æē”Ø(properties恫čæ½åŠ )

int isolationLevel()

-1

WebLogic Server恌Connection.setTransactionIsolation()ć‚’å‘¼ć³å‡ŗć™ćŸć‚ć«ä½æē”Ø恙悋desiredtxisolevelćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚’čح定

boolean transactional()

true

URL恮ē”Ÿęˆć«ä½æē”Ø

int initialPoolSize()

-1

JDBCConnectionPoolParamsBean.setInitialCapacity

int maxPoolSize()

-1

JDBCConnectionPoolParamsBean.setMaxCapacity

int minPoolSize()

-1

JDBCConnectionPoolParamsBean.setMinCapacity (ę–°č¦)

int maxIdleTime()

-1

JDBCConnectionPoolParamsBean.setShrinkFrequencySeconds

int maxStatements()

-1

JDBCConnectionPoolParamsBean.setStatementCacheSize

String[] properties()

{}


JDBCPropertiesBean

int loginTimeout()

0

äøä½æē”Ø


WebLogicę§‹ęˆå±žę€§ć®ä½æē”Ø

Java EE 6 @DataSourceDefinition恧ćÆć€ę§‹ęˆå±žę€§ć®åŸŗęœ¬ēš„ćŖęؙęŗ–ć‚»ćƒƒćƒˆćŒęä¾›ć•ć‚Œć¾ć™ć€‚Weblogic. Attributećƒ—ćƒ­ćƒ‘ćƒ†ć‚£å€¤ć‚’WebLogicę§‹ęˆč¦ē“ ć«ćƒžćƒƒćƒ”ćƒ³ć‚°ć—ć¦WebLogic Serverē‹¬č‡Ŗć®å±žę€§ć‚’ć™ć¹ć¦ć‚µćƒćƒ¼ćƒˆć™ć‚‹ć“ćØ恧态WebLogic Server恮豊åƌćŖę§‹ęˆå±žę€§ć‚»ćƒƒćƒˆć®ć‚µćƒćƒ¼ćƒˆćŒę‹”å¼µć•ć‚Œć¾ć™ć€‚WebLogicę§‹ęˆč¦ē“ ć‚’ä½æē”Ø恙悋DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ä¾‹ćÆ态怌GridLink DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ę§‹ęˆć€ć‚’参ē…§ć—ć¦ćć ć•ć„ć€‚


ę³Øꄏ:

WebLogic Serverē‹¬č‡Ŗć®å±žę€§ć‚’property要ē“ ć§ä½æē”Ø恙悋ćØćć«ćÆć€ę¬”ć®åˆ¶é™äŗ‹é …恫ę³Øę„ć—ć¦ćć ć•ć„ć€‚WebLogic Serverē‹¬č‡Ŗć®å±žę€§ć®ē‰¹å¾“ćÆꬔ恮ćØ恊悊恧恙怂


GridLink DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ę§‹ęˆ

GridLinkćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćÆ态DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć§ę¬”ć®åå‰/å€¤ćƒšć‚¢ć‚’ä½æē”Øć—ć¦å®šē¾©ć•ć‚Œć¾ć™ć€‚

  • FanEnabledćÆtrue恫čØ­å®šć•ć‚Œć¾ć™ć€‚

  • OnsNodeListćÆnullä»„å¤–ć®å€¤ć§ć™ć€‚ONSćƒ™ćƒ¼ć‚¹ć®FANć‚¤ćƒ™ćƒ³ćƒˆć‚’å—äæ”ć™ć‚‹ćŸć‚ć®ONSćƒ‡ćƒ¼ćƒ¢ćƒ³ćƒ»ćƒŖć‚¹ćƒ‹ćƒ³ć‚°ćƒ»ć‚¢ćƒ‰ćƒ¬ć‚¹ćŠć‚ˆć³ćƒćƒ¼ćƒˆć®ć‚«ćƒ³ćƒžåŒŗåˆ‡ć‚Šć®ćƒŖć‚¹ćƒˆć§ć™ć€‚ć€ŽOracle WebLogic Server JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ę§‹ęˆćØē®”ē†ć€ć®ONSć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć®ę§‹ęˆć«é–¢ć™ć‚‹é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

ćƒ‡ćƒ—ćƒ­ć‚¤ćƒ”ćƒ³ćƒˆčؘčæ°å­ć‚’ä½æē”Ø恗恟GridLinkćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ćŸć‚ć®DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ä¾‹ć‚’ꬔ恫ē¤ŗć—ć¾ć™ć€‚

. . .

 <data-source>
    <name>java:global/DSD2</name>
    <class-name>oracle.jdbc.OracleDriver</class-name>
    <url>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=lcr01155-r)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=mydb)))</url>
    <user>lefty123</user>
    <password>welcome1</password>
    <property><name>weblogic.CapacityIncrement</name><value>2</value></property>
 <property><name>weblogic.HighestNumWaiters</name><value>2147483647</value></property>
    <property><name>weblogic.ConnectionCreationRetryFrequencySeconds</name><value>0</value></property>
    <property><name>weblogic.ConnectionReserveTimeoutSeconds</name><value>10</value></property>
    <property><name>weblogic.TestFrequencySeconds</name><value>120</value></property>
    <property><name>weblogic.TestConnectionsOnReserve</name><value>false</value></property>
    <property><name>weblogic.ProfileHarvestFrequencySeconds</name><value>300</value></property>
    <property><name>weblogic.IgnoreInUseConnectionsEnabled</name><value>true</value></property>
    <property><name>weblogic.InactiveConnectionTimeoutSeconds</name><value>0</value></property>
    <property><name>weblogic.TestTableName</name><value></value></property>
    <property><name>weblogic.LoginDelaySeconds</name><value>0</value></property>
    <property><name>weblogic.InitSql</name><value></value></property>
    <property><name>weblogic.StatementCacheType</name><value>LRU</value></property>
    <property><name>weblogic.RemoveInfectedConnections</name><value>true</value></property>
    <property><name>weblogic.SecondsToTrustAnIdlePoolConnection</name><value>10</value></property>
    <property><name>weblogic.StatementTimeout</name><value>-1</value></property>
    <property><name>weblogic.ProfileType</name><value>0</value></property>
    <property><name>weblogic.JDBCXADebugLevel</name><value>10</value></property>
    <property><name>weblogic.CredentialMappingEnabled</name><value>false</value></property>
    <property><name>weblogic.DriverInterceptor</name><value></value></property>
    <property><name>weblogic.PinnedToThread</name><value>false</value></property>
    <property><name>weblogic.IdentityBasedConnectionPoolingEnabled</name><value>false</value></property>
    <property><name>weblogic.WrapTypes</name><value>true</value></property>
    <property><name>weblogic.ConnectionLabelingCallback</name><value></value></property>
    <property><name>weblogic.FatalErrorCodes</name><value></value></property>
    <property><name>weblogic.Scope</name><value>Global</value></property>
    <property><name>weblogic.RowPrefetch</name><value>false</value></property>
    <property><name>weblogic.RowPrefetchSize</name><value>48</value></property>
    <property><name>weblogic.StreamChunkSize</name><value>256</value></property>
    <property><name>weblogic.AlgorithmType</name><value>Failover</value></property>
    <property><name>weblogic.ConnectionPoolFailoverCallbackHandler</name><value></value></property>
    <property><name>weblogic.FailoverRequestIfBusy</name><value>false</value></property>
    <property><name>weblogic.GlobalTransactionsProtocol</name><value>OnePhaseCommit</value></property>
    <property><name>weblogic.KeepConnAfterLocalTx</name><value>true</value></property>
    <property><name>weblogic.KeepConnAfterGlobalTx</name><value>false</value></property>
    <property><name>weblogic.UseXaDataSourceInterface</name><value>true</value></property>
    <property><name>weblogic.UsePasswordIndirection</name><value>false</value></property>
    <property><name>weblogic.FanEnabled</name><value>true</value></property>
    <property><name>weblogic.OnsNodeList</name><value>lcr01155-r:6200</value></property>
    <property><name>weblogic.OnsWalletFile</name><value></value></property>
    <property><name>weblogic.OnsWalletPassword</name><value></value></property>
    <property><name>weblogic.OracleEnableJavaNetFastPath</name><value>false</value></property>
    <property><name>weblogic.OracleOptimizeUtf8Conversion</name><value>false</value></property>
    <property><name>weblogic.ConnectionInitializationCallback</name><value></value></property>
    <property><name>weblogic.AffinityPolicy</name><value>Session</value></property>
    <property><name>weblogic.OracleProxySession</name><value>false</value></property>
    <property><name>weblogic.KeepXaConnTillTxComplete</name><value>true</value></property>
    <property><name>weblogic.NeedTxCtxOnClose</name><value>false</value></property>
    <property><name>weblogic.XaEndOnlyOnce</name><value>false</value></property>
    <property><name>weblogic.NewXaConnForCommit</name><value>false</value></property>
    <property><name>weblogic.KeepLogicalConnOpenOnRelease</name><value>false</value></property>
    <property><name>weblogic.ResourceHealthMonitoring</name><value>true</value></property>
    <property><name>weblogic.RecoverOnlyOnce</name><value>false</value></property>
    <property><name>weblogic.XaSetTransactionTimeout</name><value>false</value></property>
    <property><name>weblogic.XaTransactionTimeout</name><value>0</value></property>
    <property><name>weblogic.RollbackLocalTxUponConnClose</name><value>false</value></property>
    <property><name>weblogic.XaRetryDurationSeconds</name><value>0</value></property>
    <property><name>weblogic.XaRetryIntervalSeconds</name><value>60</value></property>
  </data-source>
. . .

č©³ē“°ćÆ态怎Oracle WebLogic Server JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ę§‹ęˆćØē®”ē†ć€ć®GridLinkćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ä½æē”Øć«é–¢ć™ć‚‹é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

čæ½åŠ ć®č€ƒę…®äŗ‹é …

Java EE DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć‚’WebLogic Server恧ä½æē”Ø恙悋際恫ćÆꬔ恮ē‚¹ć‚’č€ƒę…®ć—ć¦ćć ć•ć„ć€‚

  • ć‚¢ćƒŽćƒ†ćƒ¼ć‚·ćƒ§ćƒ³ćØčؘčæ°å­ć®åŒć˜DataSourceåćŒåŒć˜ć‚¹ć‚³ćƒ¼ćƒ—ć«ć‚ć‚‹å “åˆć€å±žę€§ćÆćƒ‡ćƒ—ćƒ­ć‚¤ćƒ”ćƒ³ćƒˆčؘčæ°å­ć«ęŒ‡å®šć•ć‚ŒćŸå€¤ćØćƒžćƒ¼ć‚øć•ć‚Œć¾ć™ć€‚ćƒ‡ćƒ—ćƒ­ć‚¤ćƒ”ćƒ³ćƒˆčؘčæ°å­ć®å€¤ćÆć€ć‚¢ćƒŽćƒ†ćƒ¼ć‚·ćƒ§ćƒ³ć«ęŒ‡å®šć•ć‚ŒćŸå€¤ć‚ˆć‚Šć‚‚å„Ŗå…ˆć•ć‚Œć¾ć™ć€‚

  • DataSourcećÆćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć§ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć®äø€éƒØćØć—ć¦ä½œęˆć•ć‚Œć‚‹ćƒŖć‚½ćƒ¼ć‚¹ć§ć™ć€‚

  • DataSourcećÆć€ćƒ‰ćƒ”ć‚¤ćƒ³ć«é–¢é€£ä»˜ć‘ć‚‰ć‚ŒćŸJDBCSystemResourcesć‚Ŗ惖ć‚ø悧ć‚Æ惈恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ć¾ćŸć€WebLogic Server꧋ꈐbean惄ćƒŖćƒ¼ć«ćÆć‚ć‚Šć¾ć›ć‚“ć€‚

  • JSR88 API悒ä½æē”Ø恗恦态Java EE 6ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’å«ć‚€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’č”Øē¤ŗć§ćć¾ć™ć€‚

ć‚Æć‚}łƒ©ć‚¤ć‚¢ćƒ³ćƒˆć§ć®ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ä½æē”Ø

Java EEćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’Java EEć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«å®Ÿč£…ć§ćć¾ć™ć€‚ćŸć ć—ć€ä»„äø‹ć®ä¾‹å¤–ćŒć‚ć‚Šć¾ć™ć€‚

ćć®ä»–ć®ęƒ…å ±ęŗ

恓恓恧ćÆ态DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć‚’å®Ÿč£…ć™ć‚‹ćØćć«å‚ē…§ć™ć‚‹č³‡ę–™ć‚’ē¤ŗć—ć¾ć™ć€‚

PK¦ųjQŒ†‚†PK‰±-AOEBPS/dcommon/prodbig.gif öłGIF87a÷’’’!!!)))111BBBZZZsss„„„„„„­­­µµµĘĘĘĪĪĪÖÖÖŽŽŽēēēļļļ÷÷÷½µµ„{{ZRRcZZ!!1!ŽÖĪ91)JB9B9)ĪĪĘÖÖĪēēŽkkc„„”JJB991sscļ÷÷ÖŽŽŽēēµ½½½ĘĘZcc!!{”œ„Öē„½ĘBZc!9B!c{!)c{9œĘ{„Z{{­œ­µc­ĪZ„ĘBœĘ1Œµ)”Ę„µŒĘs„„½Jk{µ{œ­Z{Œ„µĪk­ĪBsŒZ­ÖJœĘ9Œµ1Œ½)„µZ{!ŒĘ„½{µ„½Bc„½Žs­ĪRœĘs­Bc{½9ZZŒ”­½k„”„Īē”½Ök­ÖBkR„½Öē„ĘŽ!BZ9c)JJc{!))BZŒ”œ„Œ”ks{Bc„R{„JsœBk”9kœ)ZŒcµkĪ!!BZµ”œ„1k­!ZœcµRœB„ZµcĘZ½Jk”Bkœ1ZŒ9c!RŒ!cµ9kZ­R„ZµR­B”ZĘ9{99„!R1{9Œ9R{1„!1)c1J”œ­)1BÖŽ÷!BJRļļ÷„„­ŒŒ”œœ„„„Œkk{œœµ„„Ę½½ēµµŽŒŒ­­­ŽkkŒ­­ēµµ÷RRs{{­„„½ŒŒĪ””Ž{{½JJsssµŒŒŽBBk„„Ökkµ!!9ssĪ{{ēZZ­ssēccĪJJœZZ½RRµccŽRR½ZZÖ))cBB„JJĘ99„JJÖ!!c11”99½11„99ĪZ11½!c!!œ))ĪZ!!ĘĘ­µĘĪ„­µ!1BRck{„”œ½„„Œ½µ÷)!cJBkZRZ,’HPą)X²ĘRõ  Ć‡EåZÖ¬4jŪJ0 ¢@ "8„pš‰YŅ“ES–ģYŗ3CʊŖ@µ*•U:l“ĪY0_ū0üė’#  5tXš1E:‰ī šCć_ŗxŽ˜żĀeK©‘T¢<¹ńOC(xrŌ' Jžž©“ēm1aĄś½0S%Č-IŅex ‚ŸD} 1ZŌi”^są°Eƒ¦Ļß #…ų`¢˜qTv å©ÓFĖį¼Y»–Ķ3č)PÖ¶e ĮOź@¬]ėåėģoąĮ…{(óbĄ½Sƞ#|Æ·b“\±ŗ‹'YŠ$’ĄP tßŖƒæ¶Ī,Æ^ćXB†.+ĪKW’o¹Ų³qc[ø=1‡ ( Ÿ#ü‘H#ÆłGN8ćĢćN:ŸUaE\čpÅ (s’Ē#˜ä„Ž9Šc!† møƒ†8b‰…DbI%zŻC9ē¼xEŒUA#ˆŠ‘čˆ!9īxŁ.^8¤†Ei£’LF² +¶($‘Dxˆ¤ˆX6É%‹@~ÉņF֘$Ž:r)O=õœ#”g±C›cŽø¤™O¦‰ēVĮē•v,É xż£K2ĒƒŒ4ß`h†M”±Å 6ōéƒw$¢Č’ ŠŹ)§¼āĖ3ž­E ¢¤ī‘„ ž&JČx4BŖ·Ō’Ļ.ĘPćPd1†Ltj槆ņH£ŪT3Ķ4ÖtSégBąšRģŃ'*u¢‡†HĀ‡^ų”SĪ8ö¼“Ī: 1„Eœįķ•‡2I!„˜‹īčŠćī ńĪė…÷B‡&ƒd" &—šĪ;óČ#<ķüóĀ`€qĘ_¤“ tq¼ńI)¦¢Ī?^±ćŽ;ķ°óŅ?ž°q |X62° 'éØó’“0Œ:ė-?-„²Ē6øį† 4ōlšAŠ€'t`×#0ąc{ąA @ P@;PKœ_£ć PK‰±-AOEBPS/dcommon/doclib.gif õžGIF89aó1’’’ļļ÷ÖŽēĘĪÖ­½Īœ­½„œ­{ŒœkŒ­c{ŒJsŒBc„9Zs1Jk,@æČI«­Œ„vŹ Ų5aƒ-”‡é5-vĘasEnq0& ˆóŅˆVF[|’ÉOĀ ø @’@°É48ŪŖpM„(¬‘œ 7*X(±ÅʙĪjŽ¶o0Fq|uH‡ˆ‰Šu9’(dK@ @Y ! mFt,„gN–¬h¦%± N˜µNø@±¶·¬ Ą§F³¦ĖælŗN· duø_ĀŅg%½‹įā‹;PKĻY@¹ PK‰±-AOEBPS/dcommon/oracle-logo.jpgwbˆ’Ų’ąJFIF’ŪC    $.' ",#(7),01444'9=82<.342’ŪC  2!!22222222222222222222222222222222222222222222222222’Ą'7"’Ä ’ĵ}!1AQa"q2‘”#B±ĮRŃš$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤„¦§Ø©Ŗ²³“µ¶·ø¹ŗĀĆÄÅĘĒČÉŹŅÓŌÕÖ×ŲŁŚįāćäåęēčéźńņóōõö÷ųłś’Ä ’ĵw!1AQaq"2B‘”±Į #3RšbrŃ $4į%ń&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤„¦§Ø©Ŗ²³“µ¶·ø¹ŗĀĆÄÅĘĒČÉŹŅÓŌÕÖ×ŲŁŚāćäåęēčéźņóōõö÷ųłś’Ś ?÷ś(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (ÅQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE!KEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE†–šzŠ³E7Vö%Č£Š‹ĪOļĪ9?¼?:aĖ"\Ņf£óSūćóžrżŠÄŸjAŹÉsKš„J:n§OzO=}E1-I›īŠ)3•„(ŌQEQEQEQEQEQEQEÓ֝HzŠa<Õ[›Čķ"2Ķ"¢’ĢpÅO#ˆĮf8ššĻų®M[R“L·‹(‹,˜?ėgÆū9ž¶3«QSZŲ ńuy"lų‹ā£ļx4hƒ`ąO!Āžø›æė÷ŒLŗµĀśˆ˜ÅŹØXé×Z­ģv¶q™&“  äśc’՚ō]+į:˜‘õ É ćīĒµ@ż+…Jµ]©tšĖQ]ž~ų§¹ć¶Õć[å[ˆ¾eĻø¦źæ –(Ś]6źA&>äÜ«~+ƒś×›źzmŪZ^ÄÉ(°<īūĆ57«KsHŅĄf妬Ļ¦mnįŗ&…ƒFĆ!”ēŠĻń¼:-ėĘī„`b„©\/ØÆ(ųāŁtŻF*īBÖ³“ü ~čöVä{W«x™ƒxfł‡Cnų’¾MvF·=;Ÿ5_,6%S’>}ö²ücQ’Ą§’QÆjĄs«ßń’OOž5›Īź=«Ņü)šūO×t [ū†øW‘9 /{é^tyźNŃgŲā#„ĮŠ„ŖGs‡žßÖæč1’-ž4oėōæ’Ą–’õoųTZ?üõŸžūįK’ G’ž³’ßcü+o«Õīy’Ś™oņNuķh’Ģ^’’üiSÄŌo¹5{ģÆ\ܹż3·ōÆY“ołķs’}šŖ÷ōæ$ˆ.nQ€ć-œ~½nå,Ó-zr~- |KÕ4ėˆ×R"źŌšĢ8‘Æ”ÆaŅõ{]^Ź;»I<ȤL©Æž5"ēEŌ¤²¹ĘP’²7_jė>ėOoŖK„;*U.œōaŒłž•t*ÉK’[˜fymŅśÅÜ3Ęii ü“^ņ#wcŒõ®CĒ'ÓIŒ†ŗ”ģ‰Iźk¤½ŗŽŹŅIęp‹ī$öó扵ł|C­ĖtĈ—÷pÆ÷WüĀ¹±½œl{9>āŖ¦×ŗ·*ĶÆjóÜ„Õ.L„ä•‚§Šf½Gįߍ¦ŌŅõw] Ż’|W–Į¤ŽŻéWŒ1–·ƒļ8>øśwØ­.ēÓÆ!»öĶ ļVӃüČś× :²ŒÆ#ź1¹~½ +Ž‰õ·=Å;5Īųc_‹_Ņb¼ˆņ@¹ū­ÜW@ +ļ^“]ևĄÕƒ§7 n‚ ŗ»ŠÖ&–gŠ2I8ÅLķ±w7uÆų‡ā×Ōļ¤Ņ­$"Ö&"b§‰ź eZ§":š8)āŖņDŁń'Å%{}5Æ{±Ēą;× wāĻ]–iu;”_śdLŹ³¬4ū­Rķ-,ā2Hß6Ńü>žĀ½HųLÆKØܹ”ŽR ~føoZ£Šś§K—®ZŠģąæ·õ‘’1[’üoń£ūZ’ ­’ž7ų׫„Z7üõø’¾ĒųR’Ā¢Ń’ē½Ļżö?Ā«źõ»‘ż«—'ąy?öžµ’A}C’_üiGˆ5®s¬_ż~Ņ’ć^«’ Jķ5Ēżö?ĀœŸ tpŹ]īX/c'šŖŽÆr%šeÜŗA|4µÕ®-¤Ōµ+ėŁ’eÄ1M38Ē® `|KÕµ O¬VŚ…Ō‹u;"™Šd–Ą5ģ6¶ŃŁŚ, XŠÆų¢ā­’É’”5kYøR<Ģ­CÕiŲ·š×XŌ®øō©¼]āü;£Oy)•O–æŽcŠW€j…Ö©}=ķ܅„s‚ŪøQĻņ®Zõ”*Üö²¼­āŸ<ž§Õ~%ėŗƒ²ŪȶpŅ ˆ÷f~B¹éĆ°®ī„zbę\Ż³z™ųW*yź{’Æ–į=Ī[³Ė·õÆś ß’ąC/öö³’Ak’ü ońÆX’…C¢’ĻkŸūģ…šØt_łķs’}š«ö{‘ż­—'ąy?öī±’AmC’üjŽ“{ā WR‚Ę×VŌ7ĢĮr.Ÿ gę~æQõ"½7ž&×Ķ¹Ļūćü+cĆŽÓ<=,מd³J1¾V߁č=³ĶT)TR՜ø¬Ó*N4į«ņ ^ęėBšŚ„¼%ĪäĖģB+±=@fž•ĀE5ėkķa§}öꕧódܤFHÉž¬®ęū¤ļ^„¬i1k\¶Sgdƒī§±üškŒ> Ö¤ŸaŸOM®\_ \T)8靠øć”®»3Ä£Rš‹ę:ļ j²jśä ,Ž˜p‡Ł·k/KÓ!Ótų,ķÓĄ=ĒĻÆćZ•”Ē6œ“Š( ¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¤4“†€9Ļź ¦xnśå_k¬Lž›ˆĄżkē&f9s’K`’zóżxü…{æÅēĮ×{ył£8śHµąÄ ˜Ļ8’šēbß4’>Ƈ©ØŠE¹ī|7›£Åvń“Ü(‘É€z/į]š½k7IxŪM‰»Œ}8­!÷«ŗœyc”óŗ’«ZR˜ļĄQų péKVrü(§RPEr?^}ń'Ć°ßhĻ{xø“żč+ՀźæLW”15—®4cKŗó@ŁåœēÓŌN<ĖS«VT«EÅõ>g Ą† C)rœr9ż+Žcæ:ÆĆ×¹b –Š–Ēf*s^ éųf½‹ĀźĆįKƒŸõSī7¶å^} ‘õ¹Ģ*{£Ēīzq_@ü8#žĖ ’p’čF¾~ž ÷“Ėą[V·Pe³(nw0šM‹ˆWū=3·Ķ#ųkȵ‰zę™ØÉcy„Ē ńņPŹpG÷Ē#ō÷Ŗƒāę¦W:%’¶­’Ä×d±ć¹ó“rŒMhóĮ]Š3éHH<ōā¼\ü]Ō’|_÷ō’…Wŗų«ŖÜĘĖ ¤HHė’ßŅ”bąś›¬‹}P’Š×>¹k {ZEŒœrxžMX¾‰¤ń¾ž@8C&qī¤sųē󬫹Ʈk©L³ŹŪ™‰ēŸOnOē^š«ĆsCęk7ql2ØXCw©5ĶŽVęG抶.öS~ńź’ĮHĢ8=(§­s1ń~Ńåøc™V5īĢz ō§%v|U2«QF=Nāo‰šW]Õø?<ģ`~ļ×®}ˆõÆ=Ó¬fŌµ,­ņŅČą=;’"~‚£žāIē–ęy7K#–gģ{ƱśJõ?†žū5§ö½Ś$ y`’ zżz’Ą@Æ-~ž„śm7·m¤ĪĖGšå® G§ˆ•£Ł±ņ>öG&¼KÅ#ų]–Ųƒöy1$$«ĪŌt>ÄwÆ£q·€jćüsįµ×t·XĘ.bĢ·£{ūWej)ĆDxfc:8‡)=$y‡|Lś²°Īų³¹`²xV8Śß™öÆ~‰ÖE)HĪkåwW$Œ¬ˆJ²0äuŹŸ®kŁ>ųØź6ŸŁ×S»·’g”¬pµ~Ė;óÜ•±4֌ź¼W؝+ĆחcŠ"Ć=Ķ|ąÅ™Łå9błcżćÜž5ī’É> ½*r™šgōį {~cüj1rnIšģ#Ø·Gµ|8šģv4w³ÄæhøFb>č<^‚ pJĢŃLm„[łDl1®Š;ŒV®x5ŻIZ:1Œ­*µ¤äp)Ų„Š1Z¢bŒAKŠ(1“ūׅ|SĒü&Óģ©’”5{Įé^ ńKžG’^é’”5rć>Üįļ÷“;įX’ŠČ’×»’čK^ģ•į? s’ ‘’Æfžk^īµ8Oį•Ä/ż­ś"J)3K]‡‚ŅN)iLꀏ’„×Ć’ō±’Ą…’?į5š’ż¬š!Ę¾q:ž¢Ēü‘GÖåŲ_źķłų£Œü=ŪX²’Ą…’šßÄś-ģé ¾©i,Žv¬i2’N3Ž |Ö03œóõÆQųaį†Ūż·s ! ¼€7}kZU§7Ŗ81łM,->e;³×@Q°z T(źėG€„Kš(Åah¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Šē¼Y¦[Ɨ¶j2ŅFĮ}oÖ¾o‘YY¢qµ× ƒĘźś©£<ē?…xÆÄ/Ėe}&©e h$%¦@3µæ½\XŖM®d}AŒ9:Sz3¦ųqā4½ÓĘy¹¶R q_žµz6īœõƖ¬ļ.-.cŗ²™įš?øČsÆØäó^„|XžŻ5;`äĖHŪžł¢†!ZŅ5ĢrZŽ£©E]3ŚāŒūח’ĀąÓ’ēĘļžł_ž*ų\Zwüų]ćŸüUoõˆw<ÆģŒ_ņ3Ō3Fįź+Ė’įqißóįw’ŽńTŒzüų]’ćŸüUX§Ü?²1ČĻLf rkĪ>$ųš+]%“č$ęč” v^rĻ­`ź’n®ax¬,ZĆļĻÉEžuē÷WSŽÜ½ÅĢĶ,Ņg%Šą~"°Æ‰MrĒsÕĖrYĘ~Ņ¾‰ĒĖ"Åī–FŲŖ;±8üĶ{Ń°žĖųxÖYĖEfP°ö^µĀü;š„×WPėwqbł”B:œc?…z‡‰p<7ŽĒž;SB›Œ˜fŲÕZ¼)ĆdĻ›; ÷’‡ 7ƒ¬sżÓ׿ć^>ķ}šįæā±ģŸżÖx?¼BßÕi“x§Āö^#±hfŒ,©Ÿ*P9Sž{wÆÖō[ŻüŪ]Gœó€Fńź?1łZś_nGõ‡­ų~Ļ]³kkˆƒ)9”SźcÉēÆ5Ո¢¦“<<Æ6žJ-čĻ›€éč}xžUÓi>Õux#šÖāÅ£cœłž‰ü'{į›²²‚öŽqą?OžøŖŗˆoü?x&“mѱłį'å#×ė^t)Ę“Ļ²ÄbŖb0žÓ ĻFš’Ā«kIVmVsv@ŗ}źkŅ”!ĖUTt¬x³Oń¢½»žš¬‡Ģ§é]ņO±ÆR”b•ā|2­yŌµk܊{„¶„s…PIcķ_?ų×ħÄ:ŪI“g)”=¾¹Zķ~'ųŸģš "Ņ\M2ęVS÷S°üMyLÉslūśāŗæųU~"ł–CžŚ7’\¶­£ŽhzƒŲ_ Rsµ—$~? ĀTźAóŲõį‹Įāi¬<Ļl¹•óņOž*“žŸ’>’’ńUŃõŠ}Ļ+ū'üŒōüŅf¼ĆžŸ’>7_ųē’K’ ‹N’Ÿ Æüs’Š£ėūå8æäg¦1ķ^ńCęń’Æe’Šš½ĆæķüEØ ;{+ ÅY™Č\ ģO5ēæ²|Yü{/oö›ü+ L”©ŻłŃĘņŌVc¾’ČŽOż;7óZ÷€xƛü-­E k&śd‘—ĖŲp„zübÓ±°Žß+’ÅTa«B0³gNy—×­‰ę§£Ō 3^c’ ŠĆž÷’’ńTßų\šżī’$’ā««ėūž?öF3łéł…‡ØÆ3?tć’._ųē’QŒ~Nln°:šŸüU/¬Cøeb’»ƒ1ž-i­§mØ¢’ °č ’WłŸŹøĶQM+V‚ępŲafR3ņd׫ƩŁ|AŅÆ-Äq*ŒI P7óÓņ:ŸÆ­y&©¤]h×ŅX^Fbtū¼pėÜ©ī?—|Wuļ󭏤Ź«óŃxJš3ß“ūm"öš( uqĮA}j’ö.˜ßņéżš+Ąü?āĶSĆņ„öÜ£¹Ēą wV’ķ¼”ö‹ …~į °üó[B½&µ<¬^UŒ§?rķ‡ż‡§Ļœ_÷Ą£ūO’ŸHæļ\'ü.;ž|.’%’ā©įpéßóįwł/’ZūZG'Ō1’ŹĪēūĄųõ‹žųj(#†0‘ØUT` WŸŒzw}>ļņ_ž*“žžš9m>󑓀¼ćŌF„?²EL3–õ"ģzpćŠubčzÆöĪ•źĮ$+0܉&3ŒåzŚ¶+”jy­r»1ōQE (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ƒUē·I£d‘C«0EZę“m+]Y6Ńå^!ų[ ŌÆs„ĢmÜ¶ę†å?īž£óü+Šøš‰me+żŸęćžZE2•üŽ¾ˆ9¤)žÜÖĆB[Ę;Äя*wGĶ’š‡x‡žsćæćK’ˆæč7ž;ž5ōw”¾‚)}gõHė~ȳƞ’Š.Ķʔx?ÄX’\ߚ’}äA@ˆtQõ(ā:ż‘óĶ§€|Iq(C§ˆT’’ š?„vŽų[“‰s«Kö©G+Œ*×؄qĒŅ¾Üc„k <#©ĒˆĪ±5揯ˆ`†8cXćPØ6T5ėi.“KČ!äxX*ś’­pøĘ&ќ÷ēšÕÅZĒ“øĻ˜ł“ų7Ä ćū*oĶĘ½³ĄÖ:w…ląŗˆĒ:‚QÉ5ŅyIž‚“‘Į¬”EAŻ†/2©Š‚„ś*2¦jAŅÖēšeź}¶„k%½ĢK$N9R2?ĻņÆń7Ć½KM¾VÓ!{«W9\PūŽā½×›Aģ+“c4w`ó ŲWx=ž“ŻÅZeņ\ŁXĶŖ{‘ó}yÆX°ÖõIō §¹Ņ®!½…ałO˜ßƎ{’śń]Q‰xŹ)#¹ D@9éÓéE:*µĒŠĒ}b|ņZŸ>_ųkÅ7ś„÷—:dķ$ƼŒÆŻz ė>ų&źÖłµVÜĘźvÅ󃏽łW¬lR:Rģq„J ¹łźfõ§GŲ„d9Tmč(ĒŅEtOØ}©1O¢•‚ä[xāøxEõŪ“Y ūt¦8,3’¼vž ō bšFF )Ē™r›PÄN…E8=OœĀ#ŅęV*C”Œó×ŌēšÆcš¹¾¾šź&±lńÜ&cmųłĄļŒ÷®ØCēhĶ<.ĢÖP”{˜¼Ź¦&ÜŪ£Ģ„’Y+öGĪš‡x‹žs~kž5$>ń ÓĒÓ„PĢquĀŽä×ўZt~Tl†>œQ.g> Æ%k#Ćŗ:•œKĀø‘Én¤ž'Ÿ­&æį{[yWQGŻqĆF}Až•Š…Ą„Ū’×®§ņņž/·©ķ}„õ<;VųY«ZČĶa$wQg!$;_ńć łŠĄ“Įž$NK—žśSü}Ā“Ė_īŽ¾•„°{½’MYź|į’wˆč7ęæćGü!ž"’ \ßųļų×ŃžJ’tRy+č“¾§õŽæd|ć’oˆæč/ž;ž5­įßj—zĢ_Ś6fHČwĖ¼ŽŻkŽ<µžāŃ°ƒJ#„„]ĢkēõźAĘȎŚ J€ €=„Y¤NÅu%dxRwwbŃEÄQEQEQEQEQEQEQEQEQE'f–ŠLQŠZ(1F)h ¢ŒQ@X1KE˜ęŒQE-Q@ Š1KE3h=©iŌPb“ź(¢Š(¢Š(1GjZ(£š„Å-Ķ“ģRāŒPbŒRŃ@ Š1KE7`bŚ’y“S0(Å- Å&)ŌP+ ŚŽŌ“P11F)h Å&:ŠLRm§Q@¬„Q@ĀŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Šņæ|I×¼5ń{JšÄ¶zlśN¤öā&]āuY[ĖĖ6vä8c€¼®A9©@į’>5ėń¤śec$v±Gē½äNI‘†’”¬ƒåŚÉŌg;»b½CĄž$’„»Įz^øcņäŗ‹÷ØH¤£ķ?.åldēĻ4ŠQ\?Å_Žx ĀQźv°\]Mv–Č''beY‹'„#sŪsĮŚ–„¬ų;JÕ5e“[ĖŪuøe“ # ’2ø“„sÉē8ā€7(¢Š(¢¼?ūwX’†„žČžÕ¾žĢ’Ÿ/“?“’[¾ęvżīzuę€=ĀŠ( Šąž,ų×Rš…muM. I§–õ-Łn‘™B”vČŚŹs”żkØšÖ„6³į]#TøXÖ{Ū(n$XĮ Š1$œdśšŌ¢Š(¢Š(¢Š(¢Š(¢¼æūĒ?š½æµ<ŪļųD¹öńä’Ē¶ßõ;óž³żž¼ū×ØPEPEPEp’~"[ü>Šć”CöNórYBĄģ%q¹Üį]ĖĄ99c–}œ?üCŌ†„„h1Ė“Ēc4* ®ŃĪ r2ē'!›p9ą P“Q^?kāŠ>ń„xŸJ±ŌōĖ›øķ¤Õ­#n|ĒU Yp©µ¤Q†wm gļW°PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPƒžŅš6ż;C× _*W³•ń‰xŽƒ8åFÉ:ž p95ķ§ż·įķ3Vņ|Ÿ·ZEsånŻ³zŪœ ć8Īr’“oķæ…śŌJ­¢‘¼ĆīyD;88bŌ½Œ€My’‚hߣ’›QtƒĢŌ®ä•dAó˜Ó÷aXć³,„@ŻźMrž’ŠCö‰ń‡›÷vś‡äAiÄ)œ\G•ą ±ī^ĮbšgĒć6½ćÆ ųZŽ8ćÓ1Ļ#„®%€@€ YĻ?{§ūßś—§Ė ;X½£ŽŌ~TōW€h’Ā[ūPź—ĶmƦK+ÉĒ~|…źĖĒŽß±ĒLc© gŅž3Ļ5·ĀMyą–Hœ¤HY©*Ó"°ć±RAĮ"€8;ų÷ć£w†g’„{ĆPJļyYœeN7ŽL€ŪPض³‚ljŽų“ą9|E„xā}r8š[»]D¾ JUŽÕwpx IB’N+į¾„ńCNšEšx[Āš5Ī—#Čés+*É3o!‹žłI  ‘ŃG„ušüs’”3C’æĖ’ÉŚ|9ńšųėĮÖś»GWjķÜQīŚ’®3ŒŽ…J·SŲÉ ×†xŪ^¼š×ķ}ŖéÖ_m¾ĖŽŽßļ’KEx·.ŃÉĘ23šļžų'Ä^žŽžßÓžĒöƳł?¾ŽMŪ|ĶßqŽ1¹zś×94Üž×!'Š9P:øWPĄ2ŁSĻpĄ{ m’Āµų“¬iߌzÄkė-^h·µŒŅÜ *‰ĀŽƒqT<䍯M†uŪæ]x/ĘńłZÜYļöp#(gpåNß¹“©PØ'$‘Ÿ`Ɵž$’ žŃžžĻżižĒēIČŅnćmÄuŹ§=WŽ”Š~ŃßņO4’ū Ē’¢„Æ@š'ü“Ļ Ų*×’E-y’ķ’$óO’°¬ś*ZōÉ<š×ż‚­ōRŠA\?Ä߈–’“8åż£S¼Ü–P°; \nw#ųWršN@å‡q_?ü\’LųėąĶ:ė÷ö-öLŪKóFwܲæŹxł‚Ø>  ō  į’ğiɬė¾>Õt[Ė¬0²…\lL„‘ć%@śüā^Ēʞ)ųQāŲō]ĻŖhū.¦Ź]Āī'~īY±»„–^6ä`?¼WžŅBŽÓ.(Ģé©Ŗ$…FåVŠBĄ ŖHļ“zPØx_±š·‡ļ5­I¤–ØüµÜĢI Ŗ©b8ņ@ę¼OĆqüIų»ęk#ŸĆzDy[c`Źü ”Ć2§,Ģpąž-¶>+ߎIū?ųRY.ēy.žÅö—i 3fŻœļ?ÅóÜ÷õÆTų}6ß|6EHtĖw*ŠhĆ1ć¹bI=É&€<ƒÅŗļď…éójņjś}Ś*ŲkÄ –ņ‡Žźū·d•ŽrxĮR6²×©ü-Öõü8ŅumZćķÓłŽd»7m™Ōp ĄY`†o„š»Ėnš¼2‚Q¼ä\Æ”ŚĢ2;;ŌŸæäč_öń’„P?’ ·ˆæį£įžŠ’‰'üśł1’Ļ§™÷öīūüõöé^ćOYų+Ā÷ZÕāy¾V„i¤c…POāN2B†88Åx’üŻēł’Ÿ “ö™že·šÕŗĖ ŽåŽ0Ēk2ˆ‚’:0¶ćė@4}'āÄėxuĶCÄŅxcL‘ ZA`®Œą…¶RQ°H.äś ¬ lXųā†µķ6śĖĒWzՙø/ķļYņ ‰æ`‘IŪø“•`$ā½RĀĘßLÓ­¬,ćņķmbHaMÄķE(ÉäąÖ¬PEPĻŸ$māē„¼Gw §Ā6謖s åäP ķtė€s׃oŃ ¾µĘ|ĻµĀ—ŗcvcæ\ē#¦9÷ Ļ×5›?hwŗ½ūģµ“‰„| c¢®H‰Ą<’|łwńą–©f×ZŒšĒ‡]ÄQ«»!ųƒĆšS’hĶ%ŻĶŽ›‘ū; p$ČQ»j+}ć“gsd£üš¶³įŽXk–dŗ“Py•<Ō“(cŒ”$uSłW šĀfż¢|^ņż/~ń3(%ķ*¹_Cµ˜dv$w ÆOųkć‹}ZĆW½ų}u2]Ćqw` ©1ZTRqø°ĄĀƒÅ?ųļĖæu?ųŽźKČä[xaA’6fŒ(ĆEÉąœķįyÆdÆųń„7‡üKįļéÖŃłńÜ"NĻ·cKą0ĢHWē¢(挀{åxŽćæx£ć­Ē‡ōŪ©-¼?¦¼‹uĆw|¬ĢĪį„*æ.Ņä×qāĆ„|2›Ę°HČöQÜ[G*wJFnuŻƒÓ8Ķp³·†ĒĀ÷~#ž ]j˜ ‘¶ŸÜ!ĮŪŽW/øO;ć€HIńCāLŽ K ;G³Ž’^Ō\-Ū.w’ŠC±bvØÉ ĻĖƒĶŁü5ų“­Äu {ā5ö™}6Ņml‹”A“pB: lä Ž3“šäųq«jŚMĒŁļ ņ|¹v+ķŻ2)į‚G"¼ƒĒ^ų·ńģŚŽ±‡ģ>g—öK˜—;öē;¦oī˜ļ^Ÿń·žI»’n’śQyē„µß‰ģ"ÓįÕäŅ4ūDeæÖ"ˆ .%/½6ķĮ °„q’ÄīUÆOš'„uļ \jK«ų¦ļ_‚į!0=Ó>č™L›ĄVfSyĮČąg?ątĆš“Hx¢gåeP ·œė–õ;UFO`jōJ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠŽx!ŗ·–Žā(ę‚T)$r(eu#x Ž1_jsĶį”ń/„"–Iµ4InŒbU·i— œä3:¶ ą ėŌ}·\ž©šÓĮś×ˆ]Ō“Xīµtw’I¤*Å ”Ż°Œ(#¾hSĀš7ü#ŽŅt‚$––‘Å/0 Q½‡9mĒ$dē'šńOfoüRš×Œ-cŒE.¹ŠIŚłĆ°93Ļ‚0~ƒ¬?ų?@ń…¼kŚlw‰—ˆ—dd$`į”ƒƒĘFpp=y_ģצy^×5o;?i»Ko+oŻņ“vģēœłŲĘ8Ūß!±·¢2µ¼ó*Ī˜ĪTŝņĄ=²Ļ”xVk‹Ÿį(6»tMĖ1Ē4^0GĖÉc i9I#ś}÷Į’ź’]MįČGĘDÉ 8D`£§aĻ^µŲXŲYé–qŁŲZAikvCb4\’Np2I?y?ķ’$óO’°¬ś*Zé<ćO ŚųĆÖ÷%Ń”ž-2Ł$ŽKų•‘„J ¶AŒWIāO hŽ.Ó£°×,ž×k¢eO5ćƀ@9BF?r’š¤¾Š½’“·ür€:ųNü’C^‡’ƒųŖó?Śõāhž>šŅĒ<šb e¹¼ĆåE*Æ*Ȥ¹$v`NT:ĻųR_?č^’ÉŪž9]Ņ¾™§[XYĒåŚŚÄĀ›‰ŚŠQ“ÉĄ­qžų±į?hpßĶ«ŲéwåšŅöé#xÜuq—žuö ę¼CqńcÅ> šzż®ÖÖVšāė#Égo™»ˆŠ3 ĄüÅšłKz}÷Į’ź’]MįČGĘDÉ 8D`£§aĻ^µŠx{Āŗ…,Ķ®‡¦Ae}ņ€—“‘¹ĪY±øć$ć8P7ńĄ‹ā†MįżÖ?>Å"m:'™”)Œm øžIrÜd‚Hź9?ƒß“{ Ūč:ž”…ö›Ž9®äH£žp˜c€FÕŚy Éł±ķĆÜx[įļÄø£ÖĶŽ©ž Õ“­’U~Y mĮvüÆŹōĄĶyæĘ߉zʏ/†<97Ūį]Ę„ym‰!HĆ ©øŸœĘK;W$’ |’’C”ŪĒž”I\?Å©¼ąŸ‡÷^šż­Œ7÷ņÄ“Ć ›¦„Įåc–=@Päpł^ź¼=qį_‡ś>xŁŗ†"ó ‘ŻšFN ib¹œg½y?üŻēł’Ÿ ķ>6ų&oų9n“ūy'Õ4·2Į`³K`H€d ą+t$ģĄ5uŸš„ųwž’ųJ’³’āw’?^tŸóĻĖū›¶żĪ:{õ®‚€<ÆįĒÅļjŽ±²Ö5hģ5kKuŠsØO6Ą«ę [‹g8'vwp@Üz‹æ‰~¶½Óģ”Öķ/®ļīŽldYÉfuL±RBø˜Œ€q’1Rx‡įׄ|Ux/5 ī‡Y‘ž'~ł™-€  ŁĒlU}įg‚t E/ōķŗLy¤’m„C(‘˜+r=h°¢Š(‡ń7Å- Įž-‡C×{xē“[”¼D2"å¤YGĢ>ąĮ³»œ“©ÄÜŪÅ:x«F "Q%ģhĄžUˆ*}ˆw­MOBŃõæ+ū[J±æņsåż®Ż%ŁœgĘp:z ć’įI|<’”{’'n?ųåyēÅ’Ųü@}7Į~ŽMZšŽł­4&õWMŠHĆ 1błŚ$WŠüaš÷ūkį,>‰žŃ}¦ZEö)q³ĢšŚ8ÜŽ7/$…ßžq]&ąļxYt]ŅŃĀó•7JŹ[q #eŲgzA[”į’ž'iŚ~†¾ńU÷öv„§Źš@oC 1ŒŽģp¬„2į¶€6(ÉĶzE÷Äiör]Mā)ćLdAr³9É„BXõģ8ėŅ¬x“Ąžńw–uĶ" ¹#ĄY²ŃČĪzŪ~bvē9Ękƒ­®"<;xÜ:‰.fu$ņ¬ä0ö ƒŽ€:kö>(Ń!Ö4ʑ¬ēy'uŚ\#²nĒP RFppF@“«[ż¢Ę}¾d[Ł7m`ƕ Ž@<ćž É!Šæķć’J$Æ@¬żDÓ¼9£Į¤é6’g±ƒw—ö}»˜±å‰'’O&“(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢¹æų×Mš©ŖAw4Ü-ŗ­Ŗ+0b¬Ł;™F0‡æ„li:”:ĪcŖ[¬‹ķ¼w¬€ ź‚Fp}M\¢¼ßÅ?ü7įŻčwöZ¬—V»7¼FPīEq‚d£Տ’ ą’śėŸ÷āž;@ĮEržų‹į^=[‚{”ŅW‰ß‚~Up `)'nqßŌPEp~5ų³ ųY‡KÕ-5)§–Żn­cFP„™pw:œåoJę’į£¼’@ŻsžüC’ĒhŲ(®/Ā_<)ć;ˆ¬ōėŁ"Ō$FqeuI0§œQŽ>l+ŒžĒ„W?āĻh^ ӖóZ»ņ¼ŻĀQKÉ3(É £š8PHÉē’šŗõ‹’ōįĘ¹©iž¦ļ¾f8n7^0įNŻ°Q^_£|pŠ®5Ņ¼Ga}į½O$wČ|“bFŠ[†Uƒe•T óŠŸP Š+/Rń.ƒ£\-¾©­é¶3²Xī®’&+’2qF}jQ\ž›ń;Į­»Ooā}5\”S vĪįdŚHē®1׊×QšŻ[Åqo,sA*ŽHŲ2ŗ‘AG9  +ÉļægŸ]ŽI<2ź¶Q¶1 Q0ąŗ3sגzśq^±Ey’†> ų;Ā÷ŽĆi=ķōł°Ü^Ė¼Ęq…P©Į䤃Īxō ( Š§«I}}.— sź o#ZÅ!Ā¼”NÅ<Ž `uQ^G”ė‰o…5;ĘWŚĪæ«ŻĄŗŽš÷‹t&UiHņ-¬Į”|æu²§åöŠ(¢€ (¢€ (¢€ (Æ;ų™ńR‡wuŗ鱟3Ż¤Žń‹±DŖT)#k1,ćī½€=ŠŽ kx„xdŻ4R,„ŗv’2:pHō&øü@Ņ<5ŖCįżkūJĀÓS²˜’kŪ)ū !PNńÉČi1šC åå’ ķ|k j1xzņāĒYš“Vž}ž¬ŽĮ„lHŠ5<‡įIŚ2X|ųŚ§Ō(¢¼Ęß?įń}ö’ēŪ>Ėåž’ķŽ^ķŃ«żß,ć±×µs’šÓ_õ(’åK’µPŠWų'ć§ü&>/±Š?įūŚ¼Ļßż»ĢŪ¶6»åŒēn:÷Æ` Š+›ńߋ”šG„īu¹aŽįćtH­šq™™€ĀœBīlxSõ ’Šņ}öƒšv”±5¾Ņäņƒ»M›~2ŠcĖ§Øȏč7Šü?āƒHÖ¬odh„ŽL3©‘Pć–Lī^ ‚py  Š(¢€ +Äž'Ņü#”Ķ«źółVńšŖ¼¼®z"ģp"I,hŚę—ā9/ō‹ų/m[|/¤€v°ź­‚2§g‘@QEQEQEQEQEQEQEQEQEQEQEQEx’ķ’$óO’°¬ś*ZōÉ<š×ż‚­ōRןžŃßņO4’ū Ē’¢„Æ@š'ü“Ļ Ų*×’E-x’üŻēł’Ÿ ś¾’›¼’?óį_@PüSųY„¶‡'‰<7&§£Ä×?č‰ä¤©\š€m`•aō=ŠōüYyāļÅq~ŸéV2›˜¹c>ÄB$lóø†ää‚xĪ WĻ’³/üĶ?öé’µØų§’' ąÆūq’Ņ·Æ +ēO1ßMń³ĆisG öö«k,ƒ*’›™61ąš”śź’įųē’Cž‡’~W’‘čų÷gaįæhŽˆ`“Õß}Ä© F0é t™“³3>Y³»f;ś.yįµ·–āāXį‚$/$’0UE$’xs_6#Žx ā­®£ńF õy%ĆYźk1’9,]#*3±˜|ƒnĢ– IJ÷’É<ń/ż‚®æōSPŒ|;ŃæįnxēVń‡‰ŅyģlåU“³”n„ä±X·`XĘ P>bą·Rčzń’ŁĒžIę”’aY?ōTUģ‡āč¾1ŅŽĆX²Ž`Q–)Ā,ąīń•9Uö8Įq[”U{ūė}3N¹æ¼“Ėµµ‰ę™ö“µĒ“€Jņ’‰’5?\³šoƒ!óüCuµŽT !„N@bā\aPē¾W üÓ4 ė~!ń%Ģšö±”÷l’I"Aę„ß’U„Žwł‹ †ū óUžčM¬źš×ŽõGŽāńī˜ŖäJųydĘÜ)!Ō¤pĪ1‚+¤ż |Co¦|?žĒeßu«J©ÉR6Yś`ą„\d}üóƒ@gĮļ…z‹<}©ėÖWm<÷¬¢FŒ"*ŽGŽīfmĆ)Œps³§ųƒą¹c¤ź3ź~¼–A%¤Į•ćä|eD…ķ`ņķkš€Žš£Ź²,š[†•ŠJ伋•ą€ĢĄc<Éė\’Ē!›į&®ņż/ÄĢ ”o9+čv³ ŽÄŽōŽX_[źzuµżœže­ŌI4/“ČĄ8<Œ‚:×ń7į—ü,oģæų›’gżƒĶ’—o7~żŸķ®1³ß­æäč_öń’„W PĻ’šĢæõ7å7’¶Ń’ Ė’SwžSūm}E|”ńą’ü+’[źßŪæoó®ÖŪŹū'•Œ£¶ģļoīcļ^÷šÓLoųC“}kTŽŅć^¼²FŸQX—Ļš&ĆFÆ&ŠĢBĮĪy^§­ygʍYüq条śßh’ JĪc‘š1;ź ’ŖUbXghwkßģ,mōĶ:ŚĀĪ?.ÖÖ$†ÜNŌPŒžNhÅ|”ą[?ˆ’>ßż“ćKč~ĆåłŸkÕ.;÷cwpõĒjś¾¾ż™ęi’·Oż­@ü*Ļ‹’ō>’åbļ’ˆ£žgÅ’śņ±w’ÄWŠPĻ’u?ĀÓ×4=s]¾Ō>Įi/’Šū’•‹æž"³>M­xÆÅ^"šn½ā)5}&K)’v’Sv®QÕHÉŚC0ulp>\ąÆ±üNńwü!~½Ō¢m·Ņ’£YqŸß88oŗGŹ>ĮŪŽõÉžĻž›CštśĶŠ‘'Ö]#l°¦ą‡–,ķœT”čŌ4­*ĒCŅķōĶ2Ś;k;tŁIŃGó$œ’O$’NI¬ų×Mš©ŖAw4Ü-ŗ­Ŗ+0b¬Ł;™F0‡æ„t•ORŅtŻfŻmõM>ŅśpėŌ+*†ĮĮ#>ę€<Æž;Į’ō ×?ļÄ?üvųhļ’Š7\’æ’ńŚōųA<’B¦‡’‚čųš?įšż šž ”’āhĻ’į£¼’@ŻsžüC’ĒkŅ<1ā}/ÅŚ:¾‘?›o' ­ĆÄćŖ8ģĆ#ó'Ėž6éžšēĆłb¶Š“«]NśXā“{kHREŚĮŻ²`»FŅFyu­t|0žųuiu$]ö«ž—3¤”?ź€#ųva€$ą»tĪ¤U{ėū=2ĪKĖūø--cĘł§F‹’ĖIń«ĻųĒĀ6~6Š’²/ļ/­­L«+żŽP†M¹Ā¶T‚¹ ćUOjTšw„<[n×Wŗ>›|/Qķ‘¢‰%\¤L˜l`Cr8é^oāŁ×H¾wøšŽ”&˜ū‹YĮš"ĮFŠč ’wżīĘ*½ĻĄKFø¹½šoŒ.ģgd r–‰Šåwš"2 '`=ź; Wćw†um"īĀ V‰RÖ ŪˆLńÄŖBłŽšįH`KJ73Ō5{¤­µ¼P!¤hL’3±c–bKrI=źJ(  żgCŅüC§=†Æaķ«dģ™3“Få=U°N`ŒškĆĻĀųā.}ą«ÉåÓ®eXf–`®`N² ” Xco †Ų[č (Øēžn.%Ž"BņI#TP2I'€ē5%x?Ę_Üx“Qƒį߅Ó®§—mśD²źC,AÉĄŚT³ŸįŚa‡Ö|/ų£}ńöž tķ ³Bļr—[€,ēĖaPs“6XepÓ+—ųąėųJŪI‹ęølMy rĀIŹ€år€€3ĪIź(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(Ē’hļł'šż…c’ŃR× xžIē†æģk’¢–¼ļöžš.™nŅĘ'}M]#,72¬R u POmĆÖ½#ĮpMką_[ÜE$3Ŧ[$‘Č„YD ‚ ƒĘ(Ę’ęļ?ĻüųWŠäž)ų5yÆxīļÅV-ŸIŗ›fĮ±ß"XĪH§a×_žŒ?č¬ėŸ”ßü~€7>-üA±šw†®lyµØ[¼v±A&Ē„0+ēØSÓ¹#”+_ąg…ŪĆß”»øŽ1w«?Ū »„D–ī~qÓa9±į‚¾š¶Øš”1]߯ğš=ōŖāåUUA<ƒ–A"½€>ų§’' ąÆūq’Ņ·Æ +Ģž |&›ĘŽ*³×­üE&•=„ŗE—l]••ŁĆ†¤·įŽµ—’ ƒĘōVuĻŹož?@’i VÅ|+¦hęę?ķ½[”n9o)RE.}ęgÆ8Ī=CĆZS[xHŃõKhĖĒ¦Ckuo&×RDA]PĆØī qžų7c¢ų€x‡]ÕīüC¬#īŠ{±…R…b bĪø8%°8ĄAÆL ž>ė?šØüs«x?Äļ<7’«Z^JvĀ0X,»rB¬ƒ°?)@”+ō=sž,š^…ć]9lõ«O7ŹÜ`™¤³ ¬?ƒ•$ ƒ^’ SX°’FŠ>#ėšn˜Ÿźm2ķåē–å$Eå‹uļŌ€z'Š<]¢ų;K{żbö8@Fh  ³‘¶4ĪXå—Ųg$ĶhjŚl:Ī}„Ü4‹ķ¼–ņ4d źT‘Fp} yŽš?B·ŌSUńż÷‰5> ’_9ņŻI\–8U †fR3Ē@=B€>xų]ć;/†š’ƒü_/Ų¼‹³,S­¼Žšŗ ŪYUё’O Q£CØükų šõÕ“ėį*QåCrT§Üfv Ī9Ā„¾ę}Ä¾šæ‹ī ø×t˜ī§ G ‘ćm¤ē£Fr@9ĘN:šÜ±°³Ó,ć³°“‚ŅÖ<ģ†Äh¹$œ(ąd’’yįµ·–āāXį‚$/$’0UE$’xs^ńsĒ+ć»?Į> –MIęø&čŪ† +©!P6@dgf ÆĮø8Ūń—ĮoĘ~4¼¼øń'ŁōCūĖ8d’[§…Ų&šČTRĮŹÜaF1Ó¼šgƟx“‹iīTŁ-åĆļ•×q8ĪQӅ;W9#4”ąķ|-ąķ+EUŒ=­ŗ¬¾[3+J~iēĖŻz•¹EŸ©ėŗ>‰åkj¶6v|æµÜ$[ńŒćqĘGOQ^?āĻŽÆ}:čßl§ŌoåÜ>ŅmYøŁœÅŽf’Yp6Šś7ģ×f›\ńņę!ŗD{$ć8‘÷nQČūŖOŽ•ėš?†¼#ęH‚ŅI2l“’q•Žä¶ß”¹ĘFqšćžü-’„Ķõ]M·ė·qyr">RŚ2Cyc3d[§^2[Ō(¢€ łCą’Ä}į’öĻöµµōßnņ<æ²"66y™Īę_ļŽ™ļ_Wחųą¦įO·’k5ŽæöŸ/Ėū^œŸøŪ»8ÜĻ÷·˜ū£­g’ĆGx?žŗēżų‡’ŽŃ’ ą’śėŸ÷āž;^’'ƒ’čTŠ’š]’Gü ž’”SC’Įt?üMx§ĮmJgćg‰õKu‘`½·ŗød0W¹€8$gŌ×Ńuē~ųWƒüu«xŽßRą¾I’;ķK¼ŖąŒ(]øĄü:W¢P\’‹lŒšŌšĒģūh·ØųĻR“U¼•Łä‚cf%²^C‡rr­‘·īĪh֚§Ēoˆ ¬j֓Įį]? mžŃņ!Ś ‰(ÜĢŲf8)pł+趎!µ·ŠŽŽ(į‚$ qØUE81RP^āć>‰ā‹ĶBĻHūVˆ.Ž+KHm£øW ˜FLĆ $7pZ÷ (ĄōæŚ6k[…²ń?†¤†xŅźKI ²0'C' ƒ€ASķ^™įߊ>ń?—ŽµWOåkv|™7æD°³ĒČ[œsČĪę·į½ÄvžF³„Ś_ GD3D£ 0ŪŖŹx•å~'ż“+č¦ŸĆ—“é·G˜ą™Œ°pøŪ“ó®[±-Žp§€=¢ŠāžųVūĮž³Ó59¤kĘwžXŒ¾b@X’«NĄ‚@ČÜ\‚A®Ņ€+Ž_Łéń oną¶ŒīĆĶ @v©väś*³@¤ōÉė<”Ūł³x‚ŅéŁ£ŠĮÅĆ9Q÷~L…' ÅAõąāēÄ/ ’Āką»ķ7‚;§Ū%“Ó&įŠAė‘•,9”įü7ū<ųkLó\ŗŸZ‘²~khŌqƒ„mņ;±ƒÓ#4Źkü_ńrāo xGJ’ĖKÄW7,X°Œ–’[ łcFQŹŒ““Ø-§Óžü3±š–]Ģw:ÕĀuvuņćĻ!ļՈÉčö–6zeœvvZZĒĮ$“… ’OćV(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(Ŗz“wÓh×ŃisG öņ-¬² ŖJTģcĮą6Cō5rŠńtųEāŸė–·ß¼I”kg„*$S’ĄØ$.H˜q•Ą5ķQ@ĶéŽ>š¾«ā[ŁźŃ¾­ȏlŃŗќ8RŹƒĄ'€O@Mt”Q^wāæėO„éśļ€c“ńkzšźvöŁ’Yłv¦8É' ž­€([=G„¼Ucć?Å¬éŠŻÅo#²ŗ‹ceN:†źHź:‚åQ@Q@}āĻ 闒YßųƒJ“ŗįžö8ŻrRr2?lPEG<šŚŪĖqq,pĮ’I*¢’I<9®?Rųµą=*į`øń-£» pmUī#–XĒLē§Ø ŅŠęōųSűhśå¤ó³”X˜„rqŪ€ÄcœŽ”®’€ (¢€ (¢€ +.č7:”ŅąÖōŁuģ†Ń.‘„ ¹Ü6œŒŒqƒZ”Q\ü,}ž?ü ’f¾žÓ’ž»É’SęõŻ»īń÷zžuŲPEŸ©ėŗ>‰åkj¶6v|æµÜ$[ńŒćqĘGOQ@TpO Õ¼WņĒ4 x䍃+©Įsšēükć]7Ąz4:¦©ÜŠKp¶ź¶Ø¬ĮŠ³dīeĀž”ŅQTōJgF±Õ-ÖE‚öŽ;ˆÖ@u Į#8>¦®PEPEPEPEPEPEŸ©ėŗ>‰åkj¶6v|æµÜ$[ńŒćqĘGOQ@U{ū=NĪ;Ė ø.ķdĪÉ H‚AĆ#š«QEQEQEQEQEQEQEQEQEQEQEQEQEQEV‹¼Qcąļ ]ėņFHD13ķ3Ėƒ¶5ąœ’:ąądž­ WU±Šō»OS¹ŽŚĪŻ7Ė+ōQüÉ'É$’kēK­O]ųóć˜4ėXgµšµŒ«$«ø/—pds‚ Ģ7^@ēbĶų UńĻ‡ļn¼G¢ų^ļXŸPFF¾žĪępĆ~_ ŒŹ2NNW·9ķ/¾1|SÓ,ä¼æšl–±ć|Óé—Q¢ä€2Åš2H{ż…¾™§[XYĒåŚŚÄĀ›‰ŚŠQ“ÉĄ­xæķ ā{=+Įö <·×Ņ­Ä±B[.€•6óī|3ĮŒqČ4'Ćo C®^č^>Ń”“Ći"Nŗ„¬¢¼`ą-Nķ‘3oŹŸ»±BÄ•ķA ­¼VöńG  HćBŖ(ĄqŠĒšv€¾šv•¢ŖĘÖŻV_-™•„?4Œ s‚ån½JÜ Š( ø’xžÆ°[\ėwÖ:d>gŚķ->՝„2IŪņ²ē•n§ė]…ņĒĘoh^³šģÓö‰ē”»Ė“ĘW aF7‘ņļ“Ķ}O_?žÓ_ó+ŪßžŃÆ (Åž‡ÅžŗŠ®.$·‚åā2I¶¤Šä š ŒóŒē¬}į?‚4;*Ś];",’ß øg*>÷Ļ¤ä““(>œ v”P‡übųo”hž›Åś?Ųś–Ÿ,Rg”I2苅ŁI qß “‘é¼CqāƇś>±xøŗš"“Ńš6~qRŲŒćµy?ĒĀAØŁx ĆÓ}¦įīÕ/mµZl…ŽŪ‚œ1Ė0' «ģšßü"> Ņō3'™%¬_½pŁF%ßiĄłw3c#8Ęy  !ńV…įK1u®jpYFßp9%äĮķA–lnĄ8ĪO꒚ю’ n¹’~!’浏x*Ś‹’µok²\hö ½¼¬6/ĶˆQŠ“Udvå,xl”ą‚­ķāŽ"@‘Ē…TP0€ćįOé3ц©£M$ņäY#(ŃɵX”Ļ€ĆHō&·+?IŠō½)āŅl ²†y|é"6&żŖ¹ 8^zėŌ“Zó’üŻēł’Ÿ ś¾’›¼’?óį_@PĻ’ówŸēž|+č ł’žnóü’Ļ…}@x’ķ’$óO’°¬ś*Zö ń’Ś;žIęŸ’aX’ōT“č’’yįÆūZ’č„Æ?ż£æäži’ö’EK^ąOł'ž’°UÆžŠZó’Ś;žIęŸ’aX’ōT“č’’yįÆūZ’č„®‚¹’É<š×ż‚­ōR×A@äsžŠžµø–ŽćHń3Äå$ŽKh•‘Į2ųbe°æńž¢ņKy©»Å’9fhĆęG'qÉi>a‘åē8jöŹĒńNyÆxrļL°Õ§Ņn¦Ł²ö ļ‹¬q†SČukÅü}šwĀŽ ųq­źÖFśźś?#ɖīp|¬ĢŖŲ†#ę Ę+č ó’æņHußūw’Ņˆčų%’$‡B’·ż(’½¼’ą—ü’ žŽ?ō¢Jō (¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+?GŠōæŁ½¦‘a•»Źó4p¦Š]ŽIž@zĄ š|lńOöÅē†t?Ļi¬¤ÆłŁø›hV!–$\nĘŗą9 Pń׎“æčfžüł·emm°÷;EnŁīHĶžų?TńOŠ&ų•āūh —X“O·h±Č `¹įUTŻ’~’P¬Ēƒ¾ j:ž¹’ WÄKµßÉ+HŚsķ3 22„F#Q·Fq”Æp Š( Šš’„šī±ā_Š~+¾]Vś÷ĆŃłßgY®ʞdąĆ¶6?/ȏŽ8gīQEs~5½ń]Ž ¾Ó-5 @Ü*ÉÓQÖĖ ŗsø(ėÜńčä“×üŹßö÷’“kč łĆĒ^ų·ńģŚŽ±‡ģ>g—öK˜—;öē;¦oī˜ļ]Ž“®üe›Y±‹Tšžž÷­Ō±Ź„’"Ć{ߞBäō?C@©^'ńgāĢ֗į¼“jņæ‘ssn 4,N<رɔž w ł¾ē¤xś~ēĮœ2 bDD€Ē"£]Cį˜€§fīrķĪ+Ā<ąO‰¾ÕS°šf›uxSdrŽÜÄęs»fŁ”AĮ<œp0 Č£ü&ųMƒmÓXÖ9¼A*p2lŌŽUOBäpĢ?Żd·ŖW’ĀCńĻž„Ķž’/’$W¤xZć]»šå¤ž%²‚ĖWm’h‚ &‚ą†n«“õ= ńOŁāFŃüUāŸ^Ć$z€DgPU• ČźH=wH1ŒƒƒĻLż^_柅WšæŠ"ń…uģÆĒ“±—&9Y@Pr3·äHŚŹĄ@Ė—»ńÖx¢ čÓŗ V–Ic ä¼vĪO^€P²Q\ŸĆėŁh3æŒÆ£ŗÕ.n<’‘”Ž5į@PAVČ\Œ’rrMu”Ē’ĀøŃ’įc’Āqö›ļķ?łå½<Ÿõ>WM»¾ļ?{Æå]dóĆko-ÅıĆH^I$`ŖŠI$šę²üOāš¾‡6Æ6Ÿ}{o3-’+¼iŻČf_”wĘq׏æ×üuńĶ’²t:=3AW-+³?”YUNŁfŪóÄŠ£ļAŪø\ųB暘|fń‹^)굇Ķ–ŽYäłįi[lJ@nq‘qŹŒ»_C×?ąæ Łų+Āöŗ-›ł¾V^iŹi¤c–bąrB…8ĶtW7ć_i¾<Ń”ŅõIīį‚+…øVµuV,—r°Ęöō®’Š§¤é°čŚ5Ž—nŅ4VńŪĘŅXŖ(PNĄōį“¦Śē‰|?į .I&¼ŗ[u•B4²•X•¾lqł± 9ĆÓń—ʝu5‰|3į _E¬Œ£ż®$ČŪXŸ.(ĖĄŚįņŹF~R9­O…? o¼3ŖOāo\Gs­\!Łļ4Ā_ŻÜŒ™IŹ’§-ĖnąÕ,,mōĶ:ŚĀĪ?.ÖÖ$†ÜNŌPŒžNjÅPEPEPEć‡Å Į¦xRK³¤ŽŪ‚­d‹ŽD%˜<äå ĄĮŹh†ČYćƊ~š,F+‰~Ū©œ…°¶u.§nąd9żŚœÆ$wdƒ,šæĆ’üSń*x»ĒdZLزĆm†xņvĒē1Åß'ƒdXøźüš#KŠ6_ų—ČÕu!¼ |o“@xk(.ŲĻ'»¦T5{|į}’ OĄrCa’? ź‚‹>q»‚T‘ž®m ŲŚĄgiŪµ}ßĆ'Ņü]”ƫ鳶ņpŹÜłYTķ“.[ŌķU=€ŖJĻŗ×t{F :óU±·¾Ÿo“m5Ā$’n;Wj““’źhBŠ( «ßŚż»N¹³ūDöž|Onū$p#r7fČ=X¢€9’x;Kš>‡ż“¤łķ JÓI$ļ¹äs“€ą(ąž¹' ¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢©źZ¶›£[­Ę©ØZXĄĪdŗ™bRŲ'±8ćŲŠ‰ą†źŽ[{ˆ£š P¤‘Č”•ŌŒAą‚8ÅA ­¼VöńG  HćBŖ(ĄqŠ ž«x®-åŽh%@ńÉWR2#‚ē5%QEQEW†ĀĪŽņęņH#ŗŗŪö‰’0]£ ¹‡-ĄĻJ±EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE^žśßLÓ®oļ$ņķmby¦}¤ķE±ĄäąŅ¼Oąż›xßĘś÷Ä]RŽA*Üy6•vĘJe!@,R#‚@q8'‘Ö|sÖ²>ŽÄƛ¦@ŒTćŸ-a…BøƒVųq”YĖą?ź¶ŗšDĄÅ%ĄCp2§`‘6mčzä·%qš÷ ęüyāø|ąėżeĢftM–±¾?y3pƒŒüĝŖÄt įÄ ¼wį©†”å’kiī±\”RŖĆä“Ą-†źN DÆż›“kĖMZÕęM–·ņžAü­ū˜d`®_‚yVb½Ā€ óŪüVÕxš“Ž$Šh+O ßų³UÕ­aß¼Ļq&ÉsjŅ ”v;ž™Æ”ėē’ł»Ļó’>ōQEp~5āEö³ ƒęÓtż<[¬Ņj@3w01Cń“«ggcóv>QŖ7Œ¼'ńsĀŚV©ć-KP}BāŅęź8ē’8’rÆMŲ)ņžŹ0q“tƤėē’Šņp¾ ’·ż+zś²üG Xų§Ć÷š.¤²K¤ ž[me †VŌ0œŽ9qZ”P‹üń ÄjžÕWĖæŃå‘āLƒ„߉S*1ņČs’Ē>g-{Ex·<Žż©,og–O³ė ·c–Y#ņ88 P69ąŌb½ņ€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€<öŠ‚i¾Ś¼QH駏Ź¤„_.EĖz Ģ£'¹½w§†ēįĻ†Ž c•™n…‘ƒĖVw #±Qćż¼Qą=gG‰diē·-#*—•x×-Ą•AĪ8'‘ÖøæŁūÄ6śŸĆ’ģu]—ZL¬’ “¹$f‘_¦IuĘOÜĻėē’äėæöļ’„×i«jPčŚ5ö©p²4Vņ\H±€XŖ)bHĄõąŸ>5ųoÅŽŌ“; -V;«Æ+cĻaŁQĪHžŠ{P£ü’’C”ŪĒž”I^_<|;ų×įæųMŠļģµY.­|ŻļQ”;„w&@z0ķ^÷¤źPė:5Ž©n²,¶ńÜF²+Ø` Įõ4OÄž'Ņü#”Ķ«źółVńšŖ¼¼®z"ģp"I>|Ótßü{ń‹jZ“IcįŪ')ˆĪV8>TyiX`³‘ĒŒlCĒų—Ē-ćļĮāynķōxÜŖZŲ…v‚.„SqP]°2ēėŒ(Zõż+ćĻ€t=.ßLÓ4MfŚĪŻ6EAßܒNI'’I'$Š²XXŪéšuµ…œ~]­¬I )øØ <œ:Պćü ńGųö’ģ›kč~ĆåłŸkD\ļŻŒmfžįėŽÕOāĻu/ųV×TŅą“šyoRŻ–é”)Gl¬§9Aßր;Ź+/ĆZ”ŚĻ…tRįcYļl”ø‘c(g@Ä ’q“źk—ńÆŝĄzĢ:^©i©M<¶ėp­k2…,Ėƒ¹Ōē({zP’ĶŽŸłšÆ +åųXś?ü/oųN>Ķ}ż™’<¶'’ŽWMŪ~÷?{§å^ēąÆ‹:5™“½.ÓR†x­Śįšź4U*Wk±Ī\võ ņŠåž"x’óĀ>ŌµĖą’ź×ŹŲ“©(wJˆr£ō|;ń%ē‹¼ ¦ė—ńĮÕכ½ Rm•Š`OEčØƟž)’ÉĀų+žÜō­ėŌS«ņōēO¬[!ÄĮÄ\µ µ*ØÆ_¬‚t ČĆ EŖxr%Ø*_æ}Į€!#ØU #4 & Ö©Ž˜3|b]…Lš Ń]štĢ Ųb+Da&…Rõ—ō_2ƒlEŁ±Z`a“īĄC)/яm›vUkS ¾… ró(Ž–-iPE¶™ VÆv_’ąš{z G…ĢLāt\2÷Ęs•!F A…#Ä©łč‘”JY ” r|‘AĘ‚ōAĒ,©hB€}ųé÷…ąqˆ|B`d€u }—00Į”Ģ(„䔆‘<‡–pb‡,¦‘ŃG+oŌB Cü0ÅpĀ/Œ“į…x$Ā…ŸČĀ– ]Š7€Ōć ƒ@2HF‚‡cˆ‘ )µ¼¢ @ģAD€Ą \0 LųŅHGö',(AŒą` `@SŠC)_®ˆ"˜øÄ ąPœH`}¼Y+ˆŅČ_|1‡.K8„pAKMA @Ą?3Č®ęŅ„$[£„JPA–ńĄ)€“”Ē+NH I ,€@8°G0Ų‚/‹@R T,ą`pĮF8łŠƒ)³ą$^į$Š DńD¼TƒDlAĆĮ@ s;PKüļü³¤ŸPK‰±-AOEBPS/dcommon/darbbook.css’’PKPK‰±-A!OEBPS/dcommon/O_signature_clr.JPG×"(Ż’Ų’ąJFIF``’ŪC    $.' ",#(7),01444'9=82<.342’ŪC  2!!22222222222222222222222222222222222222222222222222’Ą "’Ä ’ĵ}!1AQa"q2‘”#B±ĮRŃš$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤„¦§Ø©Ŗ²³“µ¶·ø¹ŗĀĆÄÅĘĒČÉŹŅÓŌÕÖ×ŲŁŚįāćäåęēčéźńņóōõö÷ųłś’Ä ’ĵw!1AQaq"2B‘”±Į #3RšbrŃ $4į%ń&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤„¦§Ø©Ŗ²³“µ¶·ø¹ŗĀĆÄÅĘĒČÉŹŅÓŌÕÖ×ŲŁŚāćäåęēčéźņóōõö÷ųłś’Ś ?÷ś(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (®ĒŽ?O 'ö~Ÿ²MQ×$žVz;· üOlÅJ‘§i8L%\]UFŠ»ÕŁÖjšŽ™¢Ā%ŌÆ”¶SŠ;rßAŌžČÜü]šŌ¶5¾øŽŠž<Ą×ˆŽß]j7Ouyq$ó¹Ė<’jŎ…«ji¾ĒM»øOļÅ 2žxÅy’ĒT““÷8SFŲ©¶żlæƙģš¹<=’>z§żś’‹£ž'‡æēĻT’æQ’ńu嚆ų—ž€w’÷įØ’„7Äæōæ’æ KėXžß§öMü’ł2=Sž'‡æēĻT’æQ’ńtĀäš÷üłźŸ÷ź?ž.¼Æžß’Š’žü5š†ų—ž€w’÷įØśÖ'·ąŲ97ó’äČö;Š~½pq=£Ś" ~k?ėķ®`¼'¶ž9”q•’6 §čE|³yay§Må^ŚOm'÷fŒ”żkCĆž&Õ<5x'Óī ©?¼…¹ŽAī?ÆZŗxł'jˆęÅš•Ɵ={=Sł’ƟMÕ gVƒCŅ.5+¤‘į€ĖŽHdßÖŖxcÄÖ^)Ņ–ņŠķułf…Ķz{CŽ©|D’‘ V’®k’”­zšönqģ|…+XČaė+{É5ó0’įrx{ž|õOūõ’Gü.OĻž©’~£’āėĆėf/ x†x’X“[ēŌ2²ĀH ņÆ)c+½æ#ļjpŽUOZÆYXõų\ž’Ÿ=SžżG’ÅŃ’ “ĆßóēŖßØ’ųŗņæųC|K’@;’ūšŌĀā_śߒ߆ŖśÖ'·ąeżƒ“?žLT’…ÉįļłóÕ?ļŌü]:?Œ>w ÖŚ”`’D˜““^S’o‰č’~«Žxo[Ó 3Ži7B:Čš°Qõ8ā—Öń Væ®Éäłc-ď¢ōoi:üFM2ö9öņČ2~Ŗy©_*Ų_Żé—±ŽYNš\Fr®‡’®=«čxZ›3鳎£Oźį¼wW½×_™ķōQEz‡ĀWćßĒį˜~Ćc¶]REČeaSüMź}ā}ā„Hӏ4Žœ&®.Ŗ£E]æźģźu=gMŃ óµ+Ųmō󖜧š®Fēāē†`r±‹ė‘żč”ćÄńėū½Nķīļn$žw9gä’õ‡µMa”źŗ¢–°Ón®Tuh¢f˜Æ2Xś’v‚>Ž‡ a(ƛ6ß­‘ģ?š¹<=’>z§żś’‹£ž'‡æēĻT’æQ’ńu嚆ų—ž€w’÷įØ’„7Äæōæ’æ KėXžßÆöMü’ł2=Sž'‡æēĻT’æQ’ńtĀäš÷üłźŸ÷ź?ž.¼Æžß’Š’žü5Kkąo\ŻĆŅ.ā8S$±TÉźO £ėXžß€žG’„w?ü™ēįZx®걓¼ŠX)’įC7 Ć‘Ę~¢²µŸ‰Ś.‡«Üi·6ŗƒĶš(Š©ČŒø=ż+¤Ń4{mG·Ó­Āø-Ž]»±÷&¼ā'üŗ·żt_żk«V„*Iõ<£ƒĢ1Õ)Łū4®µ×thšætßIs„q›p„üōQœēĆJé+Č> ’Ēę±’\āžm^æ[aŖJ„5)nyŁÖž:4¾oÅ&QEnyAEPEEss •¬·72,PD„ŻŪ¢Ō׃ųĻā÷ˆ¦’ŅÉŽŪKį¦Æķķüė ųˆŃW{ž®W”×ĢjrÓŅ+wŪüŁźŚÆÄ iŃMجÓ/;pd?˜ą~&±Ę?‚@“ŌĪ;ˆ£ē’ÆŽ7–EŽ4gv8 £$Ÿ„l'„z§żś’‹£ž'‡æēĻT’æQ’ńu嚆ų—ž€w’÷įØ’„7Äæōæ’æ GÖ±=æžĮÉ柒&GŖĀäš÷üłźŸ÷ź?ž.Ę iR(¬5W‘Ų*ŖĆ$ž€|õå?š†ų—ž€w’÷į«¼ųgąk«mIõbĪHÜķ·†eĮ/Ž_Št÷>Õtėāg%ŠåĘåy.„ŖŽķl”·}NŌ5[]+Mkėę0Ä eHĖdōPrsĘsÖ’tł'U¹³»“›ižC,y8`V%9Ął‡Z³ćĮ•©IĖia|³ÜŖ‚v¦Öńßi מĄ±YG,’Ėo}öė+«kk{YbyIeb”‚Ģ*sĪŽAÅtÕ«8ŹČń2ü¾…zóWoĻ×Eę·×K5óöz*¦—o-®“eo;nš(³œ°P üźŻu-I)4ĀŠ(¦HQEQEQEQEŸ®ź±hzę„(ŹŪĘX/÷›¢Ä?łŽöņ}BökĖ© “ĢåŻrkŚž0]4>†8óīŃXzØV?Ģ ń}6Óķś„„˜$}¢d‹ö˜ė^F>nUś įįK µģæ?äBÕæėš’čk_9×¾xžåļ~Éw'ßžĘ źŪ žuĒ„›t§ŲśL’ ćšŲˆī䓳5cĄėź-žEĶ/ž½"’Š|»_Oč³Åoį.I„HÓģĪĄø=iå߈ćŻ*Iw’5(ŖŸŚŗwü’Ś’ßå’?µtļł’µ’æĖž5źs.ēĀū)’+ū‹tŒŖčQŌ2°ĮdUµtļł’µ’æĖž5V’Äŗ.™j×ZŖ"Ž‚@ĢŽĄIśRrŠZ±Ę…Y4£ß”į_“;}ųŪŚ(KyQfŽ1üŗ¦AĒµtÆ?ߣē÷sZł„g«+?F5Čų·_oųŠćQŲR&ĀD‡Ŗ ągßæć]æĮ6FæŌuR¤D‘ u>¤ĒņŚæxōlń7†×?IĢTéäŽ8Ÿ‹•'ė§ćsŲh¢«jöś^Ÿ=õŪģ‚.ķķč=ĻJö›¶¬üŹ1rj1Wlä¾$ųÆžżģ–²cP¼˜ÓųŸś„x«;„E,Ģp$֟ˆµĖkw•É Čqg"4ž¹5Śü(š§Ūõ®ŻĒ›kVć/ÆŃž=+Å©)b«Yl~›„£K#ĖJŸļĶō_כ5&ų\«šüF±®'śI#©8ę/Ė’õä|«wŹ¾²Æų§į_ģXjö±āĪõŽšĖŌž ×ėšŪ†QŠ”:oēsÆ^T1.īMµėÕ‘č_|TO.;?ćßÜėėę_ ų‚ ė°j吳F?å¤gØž£Ü śNĪī ū8nķ¤A2FĮ®œ%i =ŃāqWõ,G=5īOUäśÆņņō Öu8“]ļR›”·ˆ¾Üćqģ?ų×Ģw÷םü÷·r'Ė»Sż+Ū¾.ܼ ©āāź8Ūč7óQ^elo/ķķTąĶ*Ę?õ®L|Ūšō<%‡…<,ń/vķņ_šOKųsšś BŁ5½f/29¶·nŽń0ī=„züq¤Q¬q¢¢(ĀŖŒ=¦ŪĮ­“VšØX¢@ˆ£²€*Jō(э(Ł™f5qõJN‹¢_ÖįEVĒžQEóŸÄOłuośčæś×ѕóŸÄOłuośčæś×aü5ź}g’¾Oü?Ŗ:߂æńł¬×8æ›WÆא|’Ķcž¹ÅüŚ½~µĮ]N&’‘O—ž’‚Š(®£Į (¢€<Ÿćˆ]>Ķ @ųVQ=Ę^~Uż ü«Ģ“m&ė\Õ­ōė5i›žŠ:’}€ęµ|}r×~9՝‰łfņĘ}ž•_Ć>'»š­ģ·vVÖ²Ķ$~^ė„fŚ3“Œ0ė^i©×n{\ż_.ĆO –F8tœÜoó}ż?${Ļ†|#¦x^Ķ#µ…^čÆļn~w=žƒŲ~½k~¼?ž'ˆēĻK’æRńtĀäńüłé÷źOž.»ćŒ”hŸ![‡3Zóu*Ł·Õ³Ü(Æ’…ÉāłóŅ’ļŌŸü]š¹z_żś“’‹Ŗśõ/õW1ģ¾óÜ(Æ’…ÉāłóŅ’ļŌŸü]v~ńgˆ|Yq<ז¶0éš „āĆ;žŠ b8ŸĆÖ®ŗs—,w9ń\?ŒĀŅuŖŁEyķS·ŅtŪK†ø¶Óķa™¾ō‘ĀŖĒź@Ķ\¢ŗ,™ć)Ź)¤÷ (¢™!EPEPEPEPEPńzѧštsØ’{¤v>ŠC/ó"¼NĀčŲź6×`dĮ*J®ŅōƧµ2gG»Ó§’WqBq§±üį_1źZuĪ“©\X]¦ÉąrŒ?Øö=Ey8ų8ĶM”pž&p³ĆKtļņšO©-®"»µŠęØwR2 K^-šóāZ< £ėĀĢÜ\c>V…æŁ÷ķōéģ–÷0^@³ŪOŃ7ŻxŲ2ŸÄW”F“jĘėsćó<²¶³„×»Ńōküū¢Z(¢¶<Š¢Š(®OāF¤šw‚/ƒ6$¹Ž1ź[Æž:֎Ʈ隩øŌÆ#q¤üĶģ«Ōžą~4ń|ž,Õ›LVPemį=@=Y½ĪÓõ®LUxӃV}A•UÅbcU«B.ķ÷·Ds5ļŽ*µk„²ŁøĆAeG>ŖPJņļ‡žxžtĶ› §b88?*ž$~@×ÆüD’‘ V’®k’”­raiµJs}Qōö.2Ģ0Ųxļ&žmXłĪ¾›Ó,ķµŲZ]Ā“A-”JńøČ#`ƙ+ź-žEĶ/ž½"’Š<½]Č\a'tZŽļōäG¢‘ļŌžµy‡Ž¼.ž׎(Ōż†|ÉlŽ‹Ż~£§Ó½gMK OŚZ÷ü¬dčēxĒ„U9T6ŅüĻÆ^<®Ļ µtļł’µ’æĖž5CZ]]Ņ.tŪ«ėS錳«•=˜sŌłšŠ`Ś³ˆįĀ§%8Öi­VŸšK:Œšn£qe+#<.T²6U½>‡­zWĀoy3Ÿ^Iū¹ {F?ĀŻJ~=G¾}kĖ)ńK$$Ń;$‘°de8*G Šć„Uӟ4O¤ĒącĀŗw}|ū’]4=ŪāŻ£\x$Ź ‘ms­ōå?öq^ipÖw\ ĖĆ"ČæPs^’įżZ×ĒŽ š ’Ļ·ŗQÕ_0żGåŚ¼UÓ.t}RćO»M³Ąå[ŠśģG#ė]8Õw±Łž ĻŁÓ«¬­87§“žæ}Cgw ż”vļ¾HźČ©«ÄžüBM5Ņ5vo°ä˜f“ =AŻž_ĖŁ­®­ļ`YķgŽx[•’6 §ńéPƱŗÜųĢÓ,­€¬į5īō}’>蚊(­0(¢Š+ē?ˆŸņ>źßõŃōÆ£+ē?ˆŸņ>źßõŃō® ĆųkŌśĪ’|ŸųTuæćóX’®q6Æ_Æ ų+’šĒżs‹łµzżk‚ž žŗœĶšõ:ĪĶu‘ć_š„õś Z’߶£ž¾£’Ak_ūöÕģ“U}JcõŸ2žu÷/ņģ1·˜į[‚_Ā»åŻøG±ņ41-bįˆ¬Ū““}÷¹ņÅ}E Č¹„’פ_ś®cž?…’ē•×ż’5ŁŚŪĒgi “@ˆįcLœœ\øL<é6åŌ÷ø‡8Ćę„hßF÷_šIh¢Šī>Xóü4Kß7UŠ¢ sĖMj¼ =Jś7·CõėćÄKo>ų„½Õ•ż5õ…s:߀t ~ūķ·–Ī·ašŁæÜć©÷Æ?‚ē|Ōōg×düLššö8»Ź+g×Ń÷G%ąo‰Ė?—¦x‚`²żŲÆ€ŽĻčŚüżO§Ļq­“—ȱĆ—wcĀØ&øæųTž’žW_÷üÖćųVĘ_’aI=ćŁdpÓŪG!wuŪžÕ½Z1“õģy™”ņŹõ•L5ā›÷•æÆį±ąž0ń$¾(×å½l­ŗžīŽ3ü(:~'©śÖ·Ćo ĀA®}Ŗę<éöD<€Ž$į_ź}¾µčßš©ü/’<®æļł®£EŃlt 5,4ųŒp)-ÉÉbz’{×-<ŻNz§¹Œā<40_WĄ¦¬®­e÷ļ’hU[Ż6ĒREKū+k¤C•YāWśŒŠµEzM'¹ńQ”¢ļfd’Ā-įļśéųųQ’·‡æč„’ąįZŌRäc_­Wžw÷³'žoŠK’Ą8’Ā¼Sā7…G‡uć5¬[tū¼¼AG·ń'õĒŚ¾¬ŻsB°ńœluŒī6œ2°īnćń¬1xŌ…’³=L£8«‚Ä©ŌnQz5æĶy£Ą|āy‡Źa3¼N*ńū[®ü­Šł0‚ÆĒ­źŃ HõKŌQŃVįĄ­}ŖųG@֜É„Į$§¬Š 9ś²ąšĀo…f$Ar£ŠNqś×ĄUOŻgÕƋ05#ūźm?D×ēś)żæ¬’Š^’’_ühžßÖč/’/ž5ķ_š©ü/’<®æļł£ž?…’ē•×ż’4}JæÄÆõ—+žG’€ÆókpG4"$¦ r| —±¾>SĘ4Š‚"S 1Ń%ÉR:ȝ“ßŪ 8;PK³PzŲ PK‰±-AOEBPS/dcommon/feedback.gifČ7łGIF89a÷’’ż'%(hØpźņŚż’Ó|…žü’ˆ¹˜fdx?AN¹øŹĻŃ’Ö’ā5:”dfeDGHÄɾüüśTdQ’’ūõž’c`g’ü÷*6D‹C\?żõž½½¼ž’’ćäāü’’Ė’Ų˜™Øźģš||{Ŗ·Ŗ;=E6JUŻõՄ…ƒ’ųžćų’ėėé’ś’²æ­ģžōķņõf†e’ž’ŹŹĆčżž‘ŒśłžōņķėńķA=<ĘĘÄCOÆ żūöż’ņ­²½ŚŪÖłłõ’’ś’’’„„¤śżś+*F¢£œž’ųĀĆĶlon213žżłŻŻŚśūłś’’ų’’;<=õõņņ’žžžüõžķ–––ģüåņģ’łņžŌŌŅĖĖɬ«Ŗų’żūńņóüā’ūłuuwł’źüü’ü’ųŽŽ[\\¹»¶ķ’ųų÷’ńńžļķķłžņ‘‘’’õśō’łüś’ķ’’öśéń’ģģóęššųńöłńņļrm}ć’ńžžžū’żó’÷’ūü`^bžž’”•īöłńö’īł’öõśéł’ńžźž’īŅŚĶūüö7J¦‹Œ‡ńōņ²§®ž’śś’ęž’ź÷öüšīņżüų‰‰Šö’šćšųüžż’üżśõļņłźņłģ’žł©Ŗ¢±²±ųü’t†lBT_óžųĶĢÜņśžļš’‹ŠœĪĶŅC9QĮĻŅĄÅŪ‹õū÷šć’tq„““”Xœa††ˆ,.kłģ’1$+/7:ēļņĄĀ½aŒp·±Óxxur|{ūż’éėųu „łūķWVRGUœAC–JL‰Ž‰āē’čö’ółÉéń’YNTżżū3-O÷śń'!ööōōóńÉ׌óóõŌŹŅōšū…xęžąŽłźēčål_”…捎äÖīžēł÷ų×ŲÖ’óųĄ¶¾żš’ykØįāŻü’ū’žü! õłü=eCVLdēņōE^|żųņGTBūżüJHUTSY&- /!^ŹæÅĖÓČ/7^V[q˜“<;7ßų’ ’ĻēŻå£«®Š’•öžé@M@——˜Žéė!ł,@’—‰a  ˆ‚ š胹”>@,4`±H.|ų°`a© ‡(Q²Ņ ˜9:Ąó&ž[|Ś,žØ4¤pą Y„&ł°BD†˜b,ą×!˜‘„2@€,ßÜŃ $wPA'ÜÜ ĒƒĘ@ÅāˆćC¼ģĀO~/dÓĆ.¤`ĮĀIģ Įņ —Üą@šš8AĮr‹ŚH¬xœĮ€9HĄˆ75 ńÜj ńĪ’LŌ£ƒ 3ÄB/`ƒĶ ŸąP¢üƒĪ#†¬qD*Ģs 3ƒA:3,H70šPĆ,Œ”RŠØŲ”@ ƒ¼p! (…F oŌ„ D;‚"Š0„ ,ā6QüB“R‰É„HhŠI@ÕŖŠ@Vģ°ÖDLĄCkį8š@NŒBB¹L2&pCl±A?DAk­%³„$`I2 ¹Ų#ĆžQ…+l”7 "=¢˜µÄõ›€„&d‘ƒLŚ&P‡RÆč¢SL±IŁP)PɼirĖqŠœ'N8—œ[„_}w;PKė-“ÅĶČPK‰±-AOEBPS/dcommon/booklist.giféžGIF89aó1’’’÷÷’Žēļ½ĪŽµĘÖ„µĪ„œ½kŒ„Z{œJkŒ1Rs!BZ)B),@ĖČI«½9¦ŽZĶ“Ca Ā% Ē²8Ȁ0‚F‘ZŲŠŒĘā0P­ ›!ńx8Š!eœ”L8ƒaWČ F·’D(~ŒćŃ@p+õrMS|ĆӛāR$ v "Z:]ZJJ‡Ec{’*=AP “ BiA ']j4$*›  ¦ & 9Žq sMiO?½ˆ„½jQ ‡‘= , ŅYFĶg4.778c&Š½$¹c%9¬“’;PKĖ5’PK‰±-AOEBPS/dcommon/cpyr.htm1Īķ Oracle Legal Notices

Oracle Legal Notices

Copyright Notice

Copyright Ā© 1994-2012, Oracle and/or its affiliates. All rights reserved.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

Hazardous Applications Notice

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Third-Party Content, Products, and Services Disclaimer

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

Alpha and Beta Draft Documentation Notice

If this document is in prerelease status:

This documentation is in prerelease status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.

Oracle Logo

PKŗNź61PK‰±-AOEBPS/dcommon/masterix.gif.ŃžGIF89aó1’’’ēļ÷ÖŽē½ĪŽœµĪŒ„½s”­c„œJkŒ1Rs!Bc1J),@ćČI«µ‚œS@˜ß0Ć"1 ČŃ¾®b$²„b0Ą ń8P……bÉL,³aĖĘc™Ķr ŖÕB@(fD°n ‚Jx11+™\Ś%1ˆ p { display: none; } /* Class Selectors */ .ProductTitle { font-family: sans-serif; } .BookTitle { font-family: sans-serif; } .VersionNumber { font-family: sans-serif; } .PrintDate { font-family: sans-serif; font-size: small; } .PartNumber { font-family: sans-serif; font-size: small; } PKeÓŗ³1,PK‰±-AOEBPS/dcommon/larrow.gifÜ#žGIF87aÕ’’’ŒŒŒ„„„µµµ½½½ĘĘĘĪĪĪŽŽŽēēēļļļ÷÷÷ēēļļļ÷÷÷’ĘĘĪĪĪÖÖÖŽŽŽēµµ½„„­­­µ½½ĘŒŒ”””œœœ„„„Œēē÷ĪĪŽŽŽļĘĘÖµµĘ½½Ī{{ŒµµÖssŒ­­ÖœœĘ””ĘZZ„{{µ{{½ZZŒssµZZ”cc­JJ„JJŒRRœBB„JJ”JJ„99œ11Œ11”))Œ!!„Œ„{„,’@€pH,Č¤rÉl:ŸŠØtŚŌpØÅĘH–c`  §Ó©©b[.ē64÷³ØżŅÅļČČņŅĖóŁŅżķŪź‘ˆÕ5’źęŻ3=’äŪżŚĖäZ]Å'ł¾Äńyuų•†ų¢§ēLGÅÉ*Ę)ėg^ļ…‹÷—“Õ!8ßC?ß-6į(2Ū9KĖ"ńÄØÉŲ0ōŠÆęl…Ż;UŪ+Kš„„’ņģŃ9÷¶³č^uĻ2,@ž@Ą (\Č°Ą Ƌ $P°`¢Ē‰ 8x ą£I$4Hˆ‘į *(“@Į¤Ķ‰0dŠ°”åĀ8tššA† Å DсSĄP‚ †čĄv"ŠTU±†H PhęŠøPÄ"Y1bxDĒ•ŽĢ§_š¬=‚$śIŠ /āē&ƽ”žµČ ž.)+ 60D)™bŽ§˜“B~=0#'ŠŽœęĀ& ‘Š*«D+ķ“«l1ˆMG CL1&ø„+īøšD`Œ.Ä1qVčG،ą‚ ( ó‘"ĄD2óQ LĖ,p.Ģ;Āu¾. Ķ|īøćrĮ$ūp‚+5€qÄBNĆµl<īTzB"\9e0÷u )Ø@ēD,“óĪĀ¹š ĢĆ2Ģ@C~KU 'LöŲĪ6Üa9“ ƒŽģ /Ļ;ē<ō`P!Dŗ#TaÅl·ķ6ŪXTń˜YhŃn¬[pńöž]ōŻ… ¼–Ć7}ģB a€Ø‚&AĘ®e˜įÅ{³ķEŹÉ²†Ę®iر•ŸįE¹ńpģ#G¼Ą}D„#x¶TĄńI€Ü‚ģz­G½ĆFĒ‚„ŲEc^…q}ś)ƒ Y­# (œt“Ū®”NeįĘG‘L*É@“¤ /%UBÖ:&ßk–0{ &Sd¢’žüļļĮńDŃn¶ BėQį^ķźō‰(āŒ "@qø „ā#‡`Ā Ņ@1ˆB4i…@ ažNȅ@ņ[Ž\öB >üe00Į¬7V“Ā[š“N°(Švž…p…yFeŒ ƀÅGb‘/&|a²˜…„H‹Z j±…@Ą„"ˆ"~ŹÓŽ)t ? $ čEQżų±‚.Õ½üāJ$øC,lŒ]åA `Œ¬é˜8A o ‚B C?8šĢ€cĮŃyA @‘‚Nz²“œ|`§¤:šäŠ`~7‘-˜G|yQĀŅåŒü A¢qA6ÉÉOzŠPbZ`>„”—¾ōå~#8‚=./“éÉeŚdGˆAŒ2Ŗnr“¤ØB“‰ Yš†RØ@ …ŲŦW h'j4p'¬!k 00Š ¼ŁMTƒ RN‚ō”¤ĄF6Ģ™ m` …(7%ź‘€;PKl-ķƒOJPK‰±-AOEBPS/dcommon/index.gifü’GIF89aó1’’’÷’’ēēļÖŽēĪĪŽµĘĪ„µĪ„­½”­½„œ­{Œ„s„”c{ŒBZs,@±ČI«½M"Č AD³ BÅ0 3¶ķ».‹Rƒīü~[D"±0,† „­”]žŠØōŁpŽRæNC  …/Ā& H&[%Č7¼TūMƒķ/ŲÄ`vSƒ„…†+-‰+ŒŠ ‚q D go@" š˜4o'‚Uxcxcc§&k/ ·q·pØ“ zUm(ĮU³HDDJBGM‡ÓŌƒ;PK(żžüPK‰±-AOEBPS/dcommon/bookbig.gifŌ +öGIF89a$÷’’’!!!)))111999BBBJJJRRRZZZccckkksss{{{„„„ŒŒŒ”””œœœ„„„­­­µµµ½½½ĘĘĘĪĪĪÖÖÖŽŽŽēēēļļļ÷÷÷½µµ”ŒŒskkB991)))!!B11))1!JB9B9!!cZ9÷÷ļ’’÷ĪĪĘ­­„µµ­ĘĘ½œœ”„„œŒŒ„ssk„„{ZZRccZRRJJJBBB9„„c!!ĘĪ½ĪÖĪ)1)k{sļ÷÷ÖŽŽŽēēµ½½„­­½Ęʌ””kssĘÖÖ½ĪĪZccJRRœ­­BJJ„””{ŒŒ9BB)11)99!!))11!!k„ŒœĘÖ!JZ!)RcJcc„”Bcs)1c­Ī)JZ!BR!)BZ)9œ½Ī9J!Rk9„Ž!c„1”Ę1B)”ĪZ{­½Ę)9BkµŽc­Ö1kŒBœĪ9”ĘBZ!Z{9­ļRs)ŒĘJk„Īēk”­sµŽk­Ö9kŒB”Ę1sœ1ŒĘJk9RœµĘ„ĘŽc{Œk„Ī9sœ)Z{1k”9ŒĘ1„½)s„1Rk)Jc1Jœ„­œ­½!))BZ!1ĪÖŽk{Œcs„c{”)19B!)BcsŒc„Ī{Œµk„Ęs„µc{½k„ĪZs½!Rk„ÖJkĪJkք”Īc{Ī9ZĪks”{„­ckŒ9Rµ)B„ksœ9RĪ9RÖ1JĘ!)Z1B­!)c)9„)9µ9BœR19„÷÷’kksBBJcc{cc„BBZ))9kkœ!!199c11ZBB{9!!R!!Z!!c))„!!kR!!s!!„BcksRZ1c9B)R91c1)Z!R9B9k1)RcZ{)!1B9JB9B)!)J9B!ž& Imported from GIF image: bookbig.gif,$‡’’’!!!)))111999BBBJJJRRRZZZccckkksss{{{„„„ŒŒŒ”””œœœ„„„­­­µµµ½½½ĘĘĘĪĪĪÖÖÖŽŽŽēēēļļļ÷÷÷½µµ”ŒŒskkB991)))!!B11))1!JB9B9!!cZ9÷÷ļ’’÷ĪĪĘ­­„µµ­ĘĘ½œœ”„„œŒŒ„ssk„„{ZZRccZRRJJJBBB9„„c!!ĘĪ½ĪÖĪ)1)k{sļ÷÷ÖŽŽŽēēµ½½„­­½Ęʌ””kssĘÖÖ½ĪĪZccJRRœ­­BJJ„””{ŒŒ9BB)11)99!!))11!!k„ŒœĘÖ!JZ!)RcJcc„”Bcs)1c­Ī)JZ!BR!)BZ)9œ½Ī9J!Rk9„Ž!c„1”Ę1B)”ĪZ{­½Ę)9BkµŽc­Ö1kŒBœĪ9”ĘBZ!Z{9­ļRs)ŒĘJk„Īēk”­sµŽk­Ö9kŒB”Ę1sœ1ŒĘJk9RœµĘ„ĘŽc{Œk„Ī9sœ)Z{1k”9ŒĘ1„½)s„1Rk)Jc1Jœ„­œ­½!))BZ!1ĪÖŽk{Œcs„c{”)19B!)BcsŒc„Ī{Œµk„Ęs„µc{½k„ĪZs½!Rk„ÖJkĪJkք”Īc{Ī9ZĪks”{„­ckŒ9Rµ)B„ksœ9RĪ9RÖ1JĘ!)Z1B­!)c)9„)9µ9BœR19„÷÷’kksBBJcc{cc„BBZ))9kkœ!!199c11ZBB{9!!R!!Z!!c))„!!kR!!s!!„BcksRZ1c9B)R91c1)Z!R9B9k1)RcZ{)!1B9JB9B)!)J9BžH ‡`\Ȑį†:pŲøŠ°"A6D±BH,Vä@D’Ś¹ū'„G"vŠ Ɔ‚ Ü„;‡n;!;>Äx”AÜܽ[G.\ørćÜčQC¤‡ ‚¤„w®œÓrä¾}‹ŗBŊQ ōA­Ž9§į¾‘#ē5YŖ0VȒj0lŻęŅ-Gų›ÓqķŹŅ襚F>Z³pM³§ ørb ;=÷.€Ž¦ĢW-W½¬Ń»œ™°WoēÜ ha!}ć~Ł’ šŠĻ;Ŗ t²øņ 5ķ“3 :\€ 4PcD,0Ą 4ć*_l³Ģ0ĀÜK3-ø`€lĄĮ.j!c š“ģA‰a|”Ķ2Ā“L4/1C`@Į@md Ą;…(‚H¦”†*ăŒ8÷ä0ÄL0ąL(’€„hĄƒ*‡Ņ‡Ÿ°Ņ†o#N8×4pC Ź(x¬ĀOä§ĮŖ@ņ ‹ČA)€”J6ą¬r€žVl±F‘ r ’ šĄfrÉyĀ†$Ÿœr_p”l5£xhŠA+@A=ˆF €rG©UŒĮ a„ ­Ų1ČØ˜Ń…4sÉ&ņH ą–BĒ³t‰ ‚x¢ŠąÄąš‰#łŽŃH%ÄRr‰ź ‚Š²(Š€ä7P`#R‰ ¤Ń‰'xŒ"€ #0`@š~iƒ Ņ`HūśAĘ'Tˆ‘k?3!$`-A¤@1‚äl"ōP„ LhĮ’üƒ€‘ņ€Ź–RG&œ’8‘A`0€”DcBH s¤€q@A ĄXŽB¤4@“&yˆ‚QhPAžpĄpxCQ„ ‚(˜ˆrBW00@ČDP 1E‘ƒ?Ņōó©@€l€öP1£%¬šÕT`ÉŌ“Š 0 įW”ÄB~nQ@;PKéöGCŁ Ō PK‰±-AOEBPS/dcommon/rarrow.gifŠ/žGIF87aÕ’’’ŒŒŒ„„„µµµ½½½ĘĘĘĪĪĪŽŽŽēēēļļļ÷÷÷ēēļļļ÷÷÷’ĘĘĪĪĪÖÖÖŽŽŽēµµ½„„­­­µ½½ĘŒŒ”””œœœ„„„Œēē÷ĪĪŽŽŽļĘĘÖµµĘ½½Ī{{ŒµµÖssŒ­­ÖœœĘ””ĘZZ„{{µ{{½ZZŒssµZZ”cc­JJ„JJŒRRœBB„JJ”JJ„99œ11Œ11”))Œ!!„Œ„{„,õ@€pH,Č¤rÉl:ŸŠØŌÉŃL“ŒœlŌø •N‡CqŗWEd“·Š)#ˆ¹Żå34”€vwwpN|0yhX!'+-‰’[ŒF '’™n5 H $/14šw3% •C .¤90" qF ™7&ĀĀ¹E °²"ĆÄ·ĒD mnĄŠµØŖB|,cĪÜÓćä96)ÜŽģī ©I @»0”B»šƒW­°{łĀį¢¦dN “‹p!5"ˆD°`ā0 ØTŠĻ 0-]Źœ™$;PK£JV^ÕŠPK‰±-AOEBPS/dcommon/mix.gifk”żGIF89aÕ’’’÷÷÷­­­ZZZBBBJJJ”””ŽŽŽkkkļļļ999µµµsss„„„!!!111ccc„„„œœœÖÖÖ½½½{{{RRR)))ēēēŒŒŒĘĘĘ­„­{s{ĪĪĪsks!ł,@’@€pH,ĘB$ 8 ‚t:Õ<8 ¢’*'²ˆÉntPP D„‡üQ@rI½ ‰ ĒBJLNPT‡VE‚MOQ‡UWfj^! š›œš hh€§ØG­ ©H«­ „·· kC³®øĆŗ¼£k_aĆĶÅ Ē¤É^ ŚŪÜ»ČhŹ`B čæ čBeČH÷õ mmāňź…  ˜#F¬` I„ ģ†l°p £ĒŽ,ĄpÄ B… J\Y!TŠ\Ģ(dćĒ!GŠŖĄdĀˆ… ®œčR²53Ł¼ Rä;iŹ²)øGµź=@-xn.4œ °¬Y… BuĶąUĮ…(*€BLŃŅ0Pń«¹X v`[D! |ų Ą” >č‚!/’;xPš` õņ(˜J€j"˜M°6‘ ;PKżęž°pkPK‰±-AOEBPS/dcommon/doccd_epub.jsM ²õ/* Copyright 2006, 2012, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2012.3.17 */ function addLoadEvent(func) { var oldOnload = window.onload; if (typeof(window.onload) != "function") window.onload = func; else window.onload = function() { oldOnload(); func(); } } function compactLists() { var lists = []; var ul = document.getElementsByTagName("ul"); for (var i = 0; i < ul.length; i++) lists.push(ul[i]); var ol = document.getElementsByTagName("ol"); for (var i = 0; i < ol.length; i++) lists.push(ol[i]); for (var i = 0; i < lists.length; i++) { var collapsible = true, c = []; var li = lists[i].getElementsByTagName("li"); for (var j = 0; j < li.length; j++) { var p = li[j].getElementsByTagName("p"); if (p.length > 1) collapsible = false; for (var k = 0; k < p.length; k++) { if ( getTextContent(p[k]).split(" ").length > 12 ) collapsible = false; c.push(p[k]); } } if (collapsible) { for (var j = 0; j < c.length; j++) { c[j].style.margin = "0"; } } } function getTextContent(e) { if (e.textContent) return e.textContent; if (e.innerText) return e.innerText; } } addLoadEvent(compactLists); function processIndex() { try { if (!/\/index.htm(?:|#.*)$/.test(window.location.href)) return false; } catch(e) {} var shortcut = []; lastPrefix = ""; var dd = document.getElementsByTagName("dd"); for (var i = 0; i < dd.length; i++) { if (dd[i].className != 'l1ix') continue; var prefix = getTextContent(dd[i]).substring(0, 2).toUpperCase(); if (!prefix.match(/^([A-Z0-9]{2})/)) continue; if (prefix == lastPrefix) continue; dd[i].id = prefix; var s = document.createElement("a"); s.href = "#" + prefix; s.appendChild(document.createTextNode(prefix)); shortcut.push(s); lastPrefix = prefix; } var h2 = document.getElementsByTagName("h2"); for (var i = 0; i < h2.length; i++) { var nav = document.createElement("div"); nav.style.position = "relative"; nav.style.top = "-1.5ex"; nav.style.left = "1.5em"; nav.style.width = "90%"; while (shortcut[0] && shortcut[0].toString().charAt(shortcut[0].toString().length - 2) == getTextContent(h2[i])) { nav.appendChild(shortcut.shift()); nav.appendChild(document.createTextNode("\u00A0 ")); } h2[i].parentNode.insertBefore(nav, h2[i].nextSibling); } function getTextContent(e) { if (e.textContent) return e.textContent; if (e.innerText) return e.innerText; } } addLoadEvent(processIndex); PKo"nR M PK‰±-AOEBPS/dcommon/toc.gifśžGIF89aó1’’’÷’’ļļļĪÖēĘĘĪ„µĪ„­½Œ„µ{”„c{ŒZ{„JkŒJk„1Rk,@ŗČI«­K%“Œ „0|„Ń ‚ÅeJB²,ēK-‰ŒĘ1’±–§iˆ'—°]‚B¢Ńt9‡žėdäzč€0&špZģ1Ģo'qÉ(ŲŸdQŖ=3S „„SZŠ‹ŒC8db f&3‰v2@VPsuk2Gˆsiw`"IŖz„EØ%²< Cž °!.“hC I»Q’ ­3o?3…9‰ĻT ŅÜŻ;PKv I’ PK‰±-AOEBPS/dcommon/topnav.gifąžGIF89aó1’’’’÷’ļēŽē÷’Žē÷ĪÖÖ½Žē­½Ž­µĘ”Œ½Œ„µk„œZ„œZk{Bc{,@ŌČ )ē l)-ˆ'KRŽŠ$Ó&¾’°8Å4 SˆI)ƒ ‰ĮX‹F P8t’ĮeÓ NŽÅRtÓHƒ€ĮąPš‰p;Q“%Q@'#r‘R4P ųfSčļQ €o0MX[) v + `i†9–gda/&”L9i*1$#¶ƒ”"%+ ( °²“ E'Ŗćī ±³µŲżž’nū7Ȇ(¤,„ņ¬Ņ…(Lą@‘(Q$\x ‘”Ę8=äćµī6 '¼× ƒ9tśJ&"€[EpĒ‰tūś ˆp#€Ń£HķĒbĮ€ ¢:…õ鋳få Ę F`A =l|˜€‚;ž&9lD¢æP2nĄŁńcH “R `q‘‘„›tČķp!dȐYHĀ›+?¢č“$æŹ4mBAó9 ” iÓ@Ź@† „É]@ˆś³źƒ¤F¼xAD*^Å“„†#Ż,¬(»Īµ ńą $H°ž}»„F—‹€ąč.óåxfŖ,BšøļŽD ĀZóė÷;PK1ż„FAPK‰±-AOEBPS/dcommon/bp_layout.css# Üņ@charset "utf-8"; /* bp_layout.css Copyright 2007, Oracle and/or its affiliates. All rights reserved. */ body { margin: 0ex; padding: 0ex; } h1 { display: none; } #FOOTER { border-top: #0d4988 solid 10px; background-color: inherit; color: #e4edf3; clear: both; } #FOOTER p { font-size: 80%; margin-top: 0em; margin-left: 1em; } #FOOTER a { background-color: inherit; color: gray; } #LEFTCOLUMN { float: left; width: 50%; } #RIGHTCOLUMN { float: right; width: 50%; clear: right; /* IE hack */ } #LEFTCOLUMN div.portlet { margin-left: 2ex; margin-right: 1ex; } #RIGHTCOLUMN div.portlet { margin-left: 1ex; margin-right: 2ex; } div.portlet { margin: 2ex 1ex; padding-left: 0.5em; padding-right: 0.5em; border: 1px #bcc solid; background-color: #f6f6ff; color: black; } div.portlet h2 { margin-top: 0.5ex; margin-bottom: 0ex; font-size: 110%; } div.portlet p { margin-top: 0ex; } div.portlet ul { list-style-type: none; padding-left: 0em; margin-left: 0em; /* IE Hack */ } div.portlet li { text-align: right; } div.portlet li cite { font-style: normal; float: left; } div.portlet li a { margin: 0px 0.2ex; padding: 0px 0.2ex; font-size: 95%; } #NAME { margin: 0em; padding: 0em; position: relative; top: 0.6ex; left: 10px; width: 80%; } #PRODUCT { font-size: 180%; } #LIBRARY { color: #0b3d73; background: inherit; font-size: 180%; font-family: serif; } #RELEASE { position: absolute; top: 28px; font-size: 80%; font-weight: bold; } #TOOLS { list-style-type: none; position: absolute; top: 1ex; right: 2em; margin: 0em; padding: 0em; background: inherit; color: black; } #TOOLS a { background: inherit; color: black; } #NAV { float: left; width: 96%; margin: 3ex 0em 0ex 0em; padding: 2ex 0em 0ex 4%; /* Avoiding horizontal scroll bars. */ list-style-type: none; background: transparent url(../gifs/nav_bg.gif) repeat-x bottom; } #NAV li { float: left; margin: 0ex 0.1em 0ex 0em; padding: 0ex 0em 0ex 0em; } #NAV li a { display: block; margin: 0em; padding: 3px 0.7em; border-top: 1px solid gray; border-right: 1px solid gray; border-bottom: none; border-left: 1px solid gray; background-color: #a6b3c8; color: #333; } #SUBNAV { float: right; width: 96%; margin: 0ex 0em 0ex 0em; padding: 0.1ex 4% 0.2ex 0em; /* Avoiding horizontal scroll bars. */ list-style-type: none; background-color: #0d4988; color: #e4edf3; } #SUBNAV li { float: right; } #SUBNAV li a { display: block; margin: 0em; padding: 0ex 0.5em; background-color: inherit; color: #e4edf3; } #SIMPLESEARCH { position: absolute; top: 5ex; right: 1em; } #CONTENT { clear: both; } #NAV a:hover, #PORTAL_1 #OVERVIEW a, #PORTAL_2 #OVERVIEW a, #PORTAL_3 #OVERVIEW a, #PORTAL_4 #ADMINISTRATION a, #PORTAL_5 #DEVELOPMENT a, #PORTAL_6 #DEVELOPMENT a, #PORTAL_7 #DEVELOPMENT a, #PORTAL_11 #INSTALLATION a, #PORTAL_15 #ADMINISTRATION a, #PORTAL_16 #ADMINISTRATION a { background-color: #0d4988; color: #e4edf3; padding-bottom: 4px; border-color: gray; } #SUBNAV a:hover, #PORTAL_2 #SEARCH a, #PORTAL_3 #BOOKS a, #PORTAL_6 #WAREHOUSING a, #PORTAL_7 #UNSTRUCTURED a, #PORTAL_15 #INTEGRATION a, #PORTAL_16 #GRID a { position: relative; top: 2px; background-color: white; color: #0a4e89; } PK3š“( # PK‰±-AOEBPS/dcommon/bookicon.gif:ÅśGIF87a÷’’’!!!)))111999BBBJJJRRRZZZccckkksss{{{„„„ŒŒŒ”””œœœ„„„­­­µµµ½½½ĘĘĘĪĪĪÖÖÖŽŽŽēēēļļļ÷÷÷ļēēēŽŽ­„„”ŒŒ„œœ„{{ZRRcZZRJJJBB)!!ŒskœŒ„RB9„{sŽÖĪ½µ­{skskcZRJ1)!ļļēÖÖĪŽŽÖ­­„µµ­ĘĘ½œœ”„„{ZZRccZJJBBB999111)JJ9BB1ZZB!!„­„ēļļ­µµ„ŒŒBJJ9BB!!))Jk{)1!)BRZJ{”BsŒR„Ī!œŽRœĘR„ÖŒĪJsŒJœĪ!œēJ{s½Œē!„ĘJsBkkµsĘ{ĪRsŒB{„J{c­1RBs1ZB{9BJ9JZ!1BJRRs”!9R!!9Z9!1)J19JJRk19R1ZŽ)!1B„9R­1RĪB÷!)J!J1RÖ)JĪ11Ę9ļ!„9Jœ9÷1!µµ9BŒ­½ŒŒ”„„ŒkksBBJ119BBR!))9!!!JB1JJ!)19BJRZckŽÖŽŒ„Œ1)1J9B,’H° Įƒ*\hpĆ >"p`ØšĀƒFF "a"Eƒ|„ŠÕŖOC&xü CŸR¹z «OBtŌXÉš¦>”X¹ŠEÖ*O>tdčšq‚ŸAŽJ±¢ +–,W£xPŠĄ”!…C‹žÕź•ÕY­pŁQėĀ HQzDHP)³®T”²µƒĀ nj¬JŒM2„ź”€J2Tˆ0įĀ„dŠ#Õ+I…:ņ‰<ˆŠ¶kĮ 'ź¤±ņ—«F‘ ĮA£B @˜€ē@ŲnÄhįņ ¤W¤zˆøÄ'€ H°|šĆ-7f¼\’A#—yN©R5Š Ū/ōP‚M™0ā¹ä9u •ŖUŖ€ĀÄjµÄ‡T|q~YŠq@ˆ&0䐔YęZAP”†a`ŃEzŅI /$A‹D Al°!AĢAal 2H@$ PVAĘB&c˜±Ę*Ų Į p @Å%¤Į p“ńĘ-`°Ä @÷b`uąB›°aĒ Šl¶é&`3ÄAp8‘Ŗ©ę§–ŹX~¶ vX€$Eh`Į“.J™hĄA ˜epA\ź"˜ŠŖBlĮ§ĄšŒ, :åHĪŚkœŚė±;PKx[Ø?:PK‰±-AOEBPS/dcommon/conticon.gif^”üGIF87aę’’’!!!)))111999BBBJJJRRRZZZccckkksss{{{„„„ŒŒŒ”””œœœ„„„­­­µµµ½½½ĘĘĘĪĪĪÖÖÖŽŽŽēēēļļļ÷÷÷„œœZRRŽŽÖēēŽ½½µ­­„””Œ{{ssskkkcccZ991ccRZZBBJJZck)19ZcsBJZ19J!k„Ę{„œk„Ī)Z1„RZs1!B„)!JĪ9µ1µ{„„k{µ)J½!Bµ!B½9­1„1­)„k{½csµ!1s!9œ)s!9„!BĘ!k)„k1c!)Z!R{9BJÖÖŽcckZZcBBJ„„”99B119„„œ{{”!!)BBR„„„BBZ!))999R99Z!!999c1!9!)19B1)!B9R,’€‚ƒ„…†‡ˆ‰Š‹Œ‹ ŽŠ oua”…\h2SYPaŽ aowwxY¦i¬‰ 9SwyyxxyYSd ¼‰$'^qÅYȵYŹvh Ļч,/?g{ÉŚŪĘŽąŠ½„.J5fe{“Ś¶ÉyīįńY#%’/}ōŠĀ‚e–,Zī|“pAÜ  `žō’äK™YxŚā†ēĪļ,˜Ēĉ‘&@¾ØiėX9|`”pą ]lčR„1khŁœ'E‰Š ō„6ØƅB‡Ü0J£;tÜ X bÕ ¤RČP(—*MƄ!2cL˜hPŒ C <€0į‚” ą ń”Ē $4ą!B 6lHCā%<¢Ą1‚e H ‚ ˆ4p±"ä ›¶L`PĄĄ!/,m*1Fˆ`€‚š#D0”ŪD^ģš!A™…O—@”‚.‹.(` `ĶŌĖ_Ų…¾QW„K­>_Ć*O÷Y0äé¢J@Žp ĮĢw '†tĄĮƒVhį…;PKpµ*¤c^PK‰±-AOEBPS/dcommon/blafdoc.css³Lé@charset "utf-8"; /* Copyright 2002, 2011, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2011.10.7 */ body { font-family: Tahoma, sans-serif; /* line-height: 125%; */ color: black; background-color: white; font-size: small; } * html body { /* http://www.info.com.ph/~etan/w3pantheon/style/modifiedsbmh.html */ font-size: x-small; /* for IE5.x/win */ f\ont-size: small; /* for other IE versions */ } h1 { font-size: 165%; font-weight: bold; border-bottom: 1px solid #ddd; width: 100%; } h2 { font-size: 152%; font-weight: bold; } h3 { font-size: 139%; font-weight: bold; } h4 { font-size: 126%; font-weight: bold; } h5 { font-size: 113%; font-weight: bold; display: inline; } h6 { font-size: 100%; font-weight: bold; font-style: italic; display: inline; } a:link { color: #039; background: inherit; } a:visited { color: #72007C; background: inherit; } a:hover { text-decoration: underline; } a img, img[usemap] { border-style: none; } code, pre, samp, tt { font-family: monospace; font-size: 110%; } caption { text-align: center; font-weight: bold; width: auto; } dt { font-weight: bold; } table { font-size: small; /* for ICEBrowser */ } td { vertical-align: top; } th { font-weight: bold; text-align: left; vertical-align: bottom; } ol ol { list-style-type: lower-alpha; } ol ol ol { list-style-type: lower-roman; } td p:first-child, td pre:first-child { margin-top: 0px; margin-bottom: 0px; } table.table-border { border-collapse: collapse; border-top: 1px solid #ccc; border-left: 1px solid #ccc; } table.table-border th { padding: 0.5ex 0.25em; color: black; background-color: #f7f7ea; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } table.table-border td { padding: 0.5ex 0.25em; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } span.gui-object, span.gui-object-action { font-weight: bold; } span.gui-object-title { } p.horizontal-rule { width: 100%; border: solid #cc9; border-width: 0px 0px 1px 0px; margin-bottom: 4ex; } div.zz-skip-header { display: none; } td.zz-nav-header-cell { text-align: left; font-size: 95%; width: 99%; color: black; background: inherit; font-weight: normal; vertical-align: top; margin-top: 0ex; padding-top: 0ex; } a.zz-nav-header-link { font-size: 95%; } td.zz-nav-button-cell { white-space: nowrap; text-align: center; width: 1%; vertical-align: top; padding-left: 4px; padding-right: 4px; margin-top: 0ex; padding-top: 0ex; } a.zz-nav-button-link { font-size: 90%; } div.zz-nav-footer-menu { width: 100%; text-align: center; margin-top: 2ex; margin-bottom: 4ex; } p.zz-legal-notice, a.zz-legal-notice-link { font-size: 85%; /* display: none; */ /* Uncomment to hide legal notice */ } /*************************************/ /* Begin DARB Formats */ /*************************************/ .bold, .codeinlinebold, .syntaxinlinebold, .term, .glossterm, .seghead, .glossaryterm, .keyword, .msg, .msgexplankw, .msgactionkw, .notep1, .xreftitlebold { font-weight: bold; } .italic, .codeinlineitalic, .syntaxinlineitalic, .variable, .xreftitleitalic { font-style: italic; } .bolditalic, .codeinlineboldital, .syntaxinlineboldital, .titleinfigure, .titleinexample, .titleintable, .titleinequation, .xreftitleboldital { font-weight: bold; font-style: italic; } .itemizedlisttitle, .orderedlisttitle, .segmentedlisttitle, .variablelisttitle { font-weight: bold; } .bridgehead, .titleinrefsubsect3 { font-weight: bold; } .titleinrefsubsect { font-size: 126%; font-weight: bold; } .titleinrefsubsect2 { font-size: 113%; font-weight: bold; } .subhead1 { display: block; font-size: 139%; font-weight: bold; } .subhead2 { display: block; font-weight: bold; } .subhead3 { font-weight: bold; } .underline { text-decoration: underline; } .superscript { vertical-align: super; } .subscript { vertical-align: sub; } .listofeft { border: none; } .betadraft, .alphabetanotice, .revenuerecognitionnotice { color: #e00; background: inherit; } .betadraftsubtitle { text-align: center; font-weight: bold; color: #e00; background: inherit; } .comment { color: #080; background: inherit; font-weight: bold; } .copyrightlogo { text-align: center; font-size: 85%; } .tocsubheader { list-style-type: none; } table.icons td { padding-left: 6px; padding-right: 6px; } .l1ix dd, dd dl.l2ix, dd dl.l3ix { margin-top: 0ex; margin-bottom: 0ex; } div.infoboxnote, div.infoboxnotewarn, div.infoboxnotealso { margin-top: 4ex; margin-right: 10%; margin-left: 10%; margin-bottom: 4ex; padding: 0.25em; border-top: 1pt solid gray; border-bottom: 1pt solid gray; } p.notep1 { margin-top: 0px; margin-bottom: 0px; } .tahiti-highlight-example { background: #ff9; text-decoration: inherit; } .tahiti-highlight-search { background: #9cf; text-decoration: inherit; } .tahiti-sidebar-heading { font-size: 110%; margin-bottom: 0px; padding-bottom: 0px; } /*************************************/ /* End DARB Formats */ /*************************************/ @media all { /* * * { line-height: 120%; } */ dd { margin-bottom: 2ex; } dl:first-child { margin-top: 2ex; } } @media print { body { font-size: 11pt; padding: 0px !important; } a:link, a:visited { color: black; background: inherit; } code, pre, samp, tt { font-size: 10pt; } #nav, #search_this_book, #comment_form, #comment_announcement, #flipNav, .noprint { display: none !important; } body#left-nav-present { overflow: visible !important; } } PK²Źø³PK‰±-AOEBPS/dcommon/rightnav.gif&ŁžGIF89aó1’’’’÷’ļēŽē÷’Žē÷ĪÖÖ½Žē­½Ž­µĘ”Œ½Œ„µk„œZ„œZk{Bc{,@ŪČ )ē l)-ˆ ³āŠ$ÓęCˆĀŅ Ņ€ ³č! œD1Į †#Ń:šaS( »…cņé4B0 AßĪC8ł Ö°9!%M¢‘Ēˆ Z * ctypJBa H t>#SbœŠ(clhUŽ<¦?i9Æ[› 8“µ1 LŖpƒµ%IHB »Ę‘¹ &[‘57½Ó1e?DXŒ ]5KĀ¬Č’h ęlSå H6+Ņ¦ü©œ;PK‘+&PK‰±-AOEBPS/dcommon/oracle-small.JPGš8Ē’Ų’ąJFIF``’įExifII*’ŪC    $.' ",#(7),01444'9=82<.342’ŪC  2!!22222222222222222222222222222222222222222222222222’Ą'7"’Ä ’ĵ}!1AQa"q2‘”#B±ĮRŃš$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤„¦§Ø©Ŗ²³“µ¶·ø¹ŗĀĆÄÅĘĒČÉŹŅÓŌÕÖ×ŲŁŚįāćäåęēčéźńņóōõö÷ųłś’Ä ’ĵw!1AQaq"2B‘”±Į #3RšbrŃ $4į%ń&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤„¦§Ø©Ŗ²³“µ¶·ø¹ŗĀĆÄÅĘĒČÉŹŅÓŌÕÖ×ŲŁŚāćäåęēčéźņóōõö÷ųłś’Ś ?÷ś(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (ÅQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE!KEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE†–šzŠ³E7Ō‚Ģ—4¹ØD£¦ązt÷¤ó×ŌSŌ™¾ķ“9ZQŅ€EPEPEPEPEPEPEPM=iŌŌP ęŖÜŽGi–i –c€*yF 1Ą׆ü@ń\š¶„&™o!QY0Ö0Ļ_örżlgV¢¦µ;°)āźņDŲńÅGŽšhŃĮĄžC…üq7~.ńć.Æp¾¢&1cņŖ:uÖ«{­œfI¤Čع>˜’õf½JųL¦$}BņBųū±ķP?JąR­WcźŻ<^¹j+³Ļ‡ˆ5œČb÷’[ühžßÖæč-’ ž5ź’šØō_łų¹’æŸżj?įPčßóŚćžūįOźõ»™’keæÉųQżæ­Š^’’ühžŽÖæč1ØąLŸć^Æ’ ‡H’ž·÷Ų’ ?įQi?óŚēžžš§õz½ÉžÕĖ?ó+_x†É”ÅŖ\°žģ½Oē“]Ļ‡>)īxķµxĀłVā/™sī)ŗÆĀeŠ6—MŗI¹7*ߊąžµęś……Ž›v֗±2J,;†~šĶEźŅÜŅ4°Œyi«3é«[øn I”`Ń°Če9ā³ü@ļ‹zń»©X©F*W ź+Éžų¶]7Q‡J»µ¬ä$$’ŗ=•¹Ēźž&`ŽæaŠŪ¾?ļ“]±­ĻNēĢ×ĮĖ ‰T䏟½¬æ'XŌš)’ʔkś°ź÷üÓÓ’fó€:jōæ |>ÓõŻÖžį®äNBĖĒŽśW›z““Yöx˜į0t!*‘Üį’·õÆś _’ąKškōæ’Ą–’õoųTZ?üõŸžūįK’ G’ž³’ßcü+«Uīyߌ¹gņNuķh’Ģ^’’üiSÄŌo¹5{ģÆ\ܹż3·ōÆY“ołķs’}šØ.>if ¹¹FŒ¶qųRö5»”³\µéÉų®ń/TÓ®#]H‹«SĆ0āD¾†½‡KÕķu{(īķ$ó"‘2¦¾xÖ“{S’ĘēBJČ8Ž=}«­ųY­=¾«.”ģ|©Tŗsц2ēśUŠ«%.Inaše”gKėoĻ„¦ƒņŠ zČ ŻŽ3Ö¹xœxwM&2źS²%'©®’ņź;+I'™Ā,kø“ŲWĪž&×åń·-Ó"_ŻĀæŻ_ń’ ęÄVöq±ģäųŠŖ›^źÜ«6½«Ļpf—T¹2RV ŸAšõ‡^6›RKŌeŻtƒtożń^[“{w„\jPĘZŽ¼@ąść鎢“»ŸN¼†īŪ4/½XNó#ė\4źŹ2¼©Ęåųjō\(Æz'ŌjÜ ÷ģ×=į~-IŠņ#É:ēī·q[ą’¾õėEŻh|X:sp–č* «ø­bifpˆ£$“ŒTĪŪspZńˆž-}NśM*ŅB-bb&*xŽ ÖUŖr#Æ‚ž*Æ$M|QW·ŃćY ńē»~½p×~-ń Łf—T¹E’¦DĒü«6ĆOŗÕ.ŅŅĪ#$ómĆļģ+Ńt„Ŗš$ŗĖ™Hå"Gęk†õŖ=«t°9råØ®ĪūYóæ’Ą†’?·õÆś ß’ąCzøųE£Ļ[ūģ…/ü*-ž{Ü’ßcü*¾­[¹ŚŁwņ~“’oė_ōŌ?š%’ʔxƒZē:Å’×ķ/ž5źßšØ“Ÿłķq’}š§/Ā]2—’å‚ö2p qĆÕīD³\·—H"æĆK]ZāŚMKR¾½™&\CÓ3ŒząÖĽ[P“ńJÅmØ]A·S²)Iaœ^Ćkm¢Į ńŠMŸ@’d’Šš¶¬Ü)fT”‰Ęź“ģ[ųi¬jW*hnu »ˆžĢĶ²i™Ęw/bkŪExGĀ£Ÿ@’f?ŚZ÷u§…“”.ĢsŹ0„Š“‰(¢Šź<`£µ‡„0‘Ö¹oxĒOšäĢūęaņDæxŸ\zTž-ń^ѧ¼”‚Ź§Ė_ļ1č+ēżCPŗÕ/§½»“®p[w 9ą~UĖ^²‚å[žÖU•<[ēŸĀtśÆĽwPv[yĪzD1ģĄČW='‰u¹$ŽŚÅŽOe¹ażk[Ć^ Ō|G‰÷k2xÆĪēŲvŻŪü#Ó2ęķ›ŌČ?Ā¹TkĻSŻ•|· īrŻž[żæ­ŠV’’üi·µŸś _’ąKzĒü*ž{\’ßcü(’…C¢’ĻkŸūģ…_°«Üķ|»ł?É’·uś jųßćVō›ßźŚ”6ŗ¶”¾f ‘tł?3õś©éßšØōn¾mĪßįZžš6™įéfø“ó%šQņ¶üAķžj”J¢–¬åÅfø9Rq§ _j÷7Z†Õ-äy.pG$īXļb]‰ź0'ō®)Æ[_kµ;ļ¶$Ģ­?›&å"0āFOõew7Ż zõ-cI‹XŅ岛;$Ļu=ēƒ\ašnµ$ū śzmrāż‚ą”IĒLķuĒ uŁž% ”Ō_1×xcU“WŠģļ%dtƀxÜ88öČ5»Yš^™›§Įgn˜Ž¹ī;ž}Ó­)“å “QE…Q@Q@Q@Q@Q@Q@!„¤4ĪxæPm3Ćw×*ū]b`¤ōÜFė_931Ėœ’[“ןėĒä+Żž(> »ŪĻĶĒŅEÆ lĘyĒų’€Æ;ł¤‘ö<;MF„ź-ĻqųsįøtŻ+·Œ}¦įDŽHäŃ ļ@õėYŗKĘŚlL„mŲ¤céÅiµŻN<±Šł|]IU­)Lwą(ü8t„«9FžS©(=¹Æ>ų“įŲoōg½Ž<\Z~ōźĄu_¦+ŠXšĢÖŚ1„Ży lņĪséŽj'e©Õƒ«*U¢āśŸ3`C!”ƒ¹N9ž•ļQ_WįėܱĖhKc³9Æōü3^Ēįuaš”ĮĻś©Ą÷ŪņÆ>†ŽHśģź ʕG½Ńćk÷=8Æ ~’e†øō#_?{Ē€Śeš-«[Ø2ˆŁ”7;=&ÅÄKżž™Ūꌑü5äzÄĶsLŌd±¼Ņć†xł(e8#ūĄć‘ś{Õ1ńwS+Ī’ŪV’āk²XŠqÜłŚ9>&“yą®hō¤$zq^0~/j@’Č:/ūśĀ«ŻüVÕnce†Ņ$$uÉoéP±p}M–CŒ¾ØÅ{ˆ$×-akH±±“Ž@ĻÉ«Ą1³ųćO !“8÷R9üsłÖÕÜ××5Ō¦YåmĢÄóĻ§·'óÆOųUį¹”ó5«ø¶T,!æ»Ōšę‡ļ+s#č1VĮeŽŹoŽ=[ų)€„ōõ®gĘ>#ĆŚ<· s)ŹĘ½ŁA^”ä ®Ļ‰£FUj(Ē©Ć|Nń3Jė”Ś·ēģŻśõĻ±µēšuŒŚ–”•¾ZYG§äOŠTsÜI<ņÜĻ&édrĢżaųv?Aé^©šĻĆ_f“ž×»B$”,įO_Æ_ųåÆßŌæCķęć–`­“™ŁiµÓtōį“{6>GŽČä׈ų§Cė²Ū~Ļ&$„ÕyĄśŽ‡ŲŽõōv1Ąµqž9šŚėŚS¤c1fH[Ń½ż«²µį¢>,ĢgGå'¤0š'‰Ÿ@ÖVßw,BO Ē[ó#>Õļ±ŗŗ‰¤g5ņ»«ĘĪ’FVD%Yr:åO×5ģŸ ¼Tu+Oģė©ƒ]ŪŒ‚Ž3ŠÖ8Zæež†}€R¶&šŃ_Šµ„xzņģc1DXg¹Æ›Ų³;<§,_,¼{ŸĘ½ćāY'Į„AĪS#¾Œž‚¼ä’oĢF.MÉ#~„cBučö懊ĆEŽöx—ķ7ČĢGŻ+ŠŽéYš)“«(†5ŚqŠÕĻ»©+GCåń•„V“œ€; qF+C”LQč)qEC&6ŸzšæŠ˜’„Äz}•?ō&Æw=+Įž)’Čā?ėŻ?ō&®\gĄ{¼;žö…ųV?ā²?õī’ś×»­xGĀœ’ĀdėŁæš×¼-Nųcā'žÖżś)3K]‡‚ŅN)iLę€÷Ź’ńTĀćÓæēĀė’’ā«¬C¹ådb’‘žŸš7Q^a’ N’Ÿ æüs’Š üdÓ’ēĀļ’’āØśÅ>įż‘‹žFz[0S“^sń'ÄŃZi ¦Į 77D”²ó“ž}kWų­us ÅabŠī~~Hś(ĻóÆ>ŗŗžöåī.fif“9,~‡ń…|Jk–;ž®Y’N3ö•ōHŽ8ŽY(—t²6ÅQŻ‰ĄĒękŽĶ‡ö_Ć·²ĪZ+2…‡²õ®į߄&ŗŗ‡[»‹ÆĶ Ōćü+ŌT r§üöļ^­č—ŗł¶ŗ9ę7ćŌ~cóµō¾ÜŽ=ė[šżž»fÖ×1RrB§ŌĒ“Ļ^k«EMhxYVm<”[џ6ÓŠśńü«§Ņ| ŖźöńĻkqbѱĪ|Ę’ ‹Å½šÅŁYA{G8Šp?Ÿ§’\UMÄ7ž¼Z6čŲüš“ņ‘ėõÆ6ć ŚgŁā1U1i…g£ųįUµ¤«6«9» Żˆ¾„u5éPĄĒåĘŖŖ:V‡V¼źZµīC=Ā[@Ņ¹ĀØ$±öƟükāSām¤É³€”‹ŠžŒß\­vßē“ż“‹žFz~i3^a’ ‡O’ŸÆüs’Š„’…ŧĻ…מ9’ÅQõŠ}ĘņŒ_ņ3Ó öÆų„ĻŒOż{/ž„Õßųwā戵goet«39 „‰ę¼÷āvO‹2’eķžÓ…a‰’•;£ŠČčĪŽ7–¢³$ųU’#‰?ōģßĶkŻĮƛ¼+­E k&śd‘—ĖŲp„zübÓ±°Žß+’ÅTa«B0³gN{€Æ[ĶN7GØžŒ×™Āā°’ }ßäæüU7ž&Ÿ’@ūæÉ?ųŖźśÅ>ēż‘ŒžFz~E!až¢¼Ļž’@ūÆüs’ŠØ‡Ę ?'67XxOž*—Ö!Ü?²qi]Į™ō֏T¶ŌQNÉ@…ŲtI+üĻå\^…ئ•«Įs8l0³)ł2kÖ!Ōģ¾!iW–‚Ęā8•F$(łé‚yO×Ö¼TŅ.“ké,/#1:}Ž8uīT÷Ė¾+Žŗ÷łÖĒŅå5ż„„©£=’O¶Ņ/`I¢†W GÖÆ’b鍒.’ß¼ĆŽ-Õ<= HOmĒś;œ~×soń~ŪŹh°øWī«Ļ5“+ŅkSÉÅå8Źs÷.ŃčŸŲzwüłE’| ?±4ļłō‹žųĮ’ĀįÓæčwł/’K’ ‹N’Ÿ æÉųŖ׌Ņ9?³ń’ŹĪėūĄųō‹žųj(#†0‘ UT` WŒzw}:ļņ_ž*“žš9m>󑓀¼ćŌF„?²ELæĖz‘v=8qÅ:±“=WūgJ‚õ`’˜nD“Ęr½ ķZõŠµ<Ö¹]˜ś(¢Q@Q@Q@Q@Q@Q@Q@Q@ ĮØ'·I£d‘C«0EYĮ¤ŪJ×VcM§ty_ˆ~Įu+ÜéSw-¹£a¹Oū§Øü’ ān<ā[YJ’głø’–‘L„#†Æ¢6i g·5„šŠ–Ē±‡Ļ14cŹŃóü!Ž!’ \ßųļųŅ’Āā/śM’Ž’}å/ £Ź_AYżR_śÉ_²>o’„CÄ?ō Ÿó_ń„ń?ä7ęæć_Gł#ŠRĒ÷ER€ßWģž¬üāK™B”»}øĒJÖxGSākĒ•»A pʱʔP mØėÖŅ]hw°B7Čš°Uõ$ZĮqŒ M£9ļĻ5«Šµ"3qŸ1óišoˆAĒöTߚ’{g¬.tļ ŁĮuŽu2£’k¤ņ“=;h#ƒYBŠƒŗ= fgS ō:TdLŌƒ„!­Ļ4ĢŌ4ūmFÖK{ؖHœr¤dŸå^7āo‡z–›|­¦B÷V®rø<”÷Å{®)6AXÕ££»˜VĀ»Įč|õ¦č>*Ó/’ęŹĘh„S܏›ėĶzĶ†·ŖO M=Ī•q ģ(sŹ|Ęžsߒ׊źLKĘQIĶ :9ĻNŸJ)ŃP®Å+!Ź£oAF>”ź+ ņ=@ƒķIŠ}¬"ŪĒĮxóĀ/®Ų}¢ĶŪ å1Įaœ•ć·õ× cĀ¹4§eŹmC:ąõ>p_xŒWK™X`© >R3Ļ_SŸĀ½“ĀęśūĆؚųĒp™·ćē¾3Žŗ”uŚ3N õüĶe §±ŪŒĢźbmĶŗ<ĆÄ_ mnŻ®ō¹¬Ēų1ņĆųOøÅp÷?üGm)Qb%NĻƒüČ5ō8¼ž†5'%AśŠš˜hĻs\6yˆ ¬Ńówü!¾"Ļüƒ&’Ēʗžß’Š._üwüké)}åG’¾‚£źP;æÖZż‘óü!Ž#’ \æš’ĮŽ"< *oĶĘ¾ņ—ū£ņ£Ė\żĄ)}N>"®Õ¬Ž/Ą~]LógŒ}ŖpBG ‹X?<ØźzŒZ–—#xŗ69äųÆSŚ=6ż) jz€xŗ=”y9O&ž>¬+ūe¹ó‡ü!Ž!?ó —šŚ?­š†ų‡žs~kž5ō€‰GšŹ)ŗ?*ēś”cżeÄ7’ĀāśOśš†x‡ž“~kž5ō‡”¾‹łQå/ üØśŒżeÆŁ7’Āā/śĶłÆųŌų#Ä3OgN•C0]Å× ;“_FłiżŃłRl†>œQ.g>!Æ%k#Ćŗ:•œKĀø‘Én¤ž'Ÿ­&½į}?ÄŽUÜ@‘÷\pџP„tp)v’õė©Ā<¼§‰ķź{_i}OÕ¾źÖ²3XIŌYČI×üxĆ~b¹ł<āDįō¹ļ„?Č×ŃĮģ(Ų=_JĀXH=bbi«=O›’įńż¦ü×üh’„?Ä_ō ›’’śCÉ_īŠO)}—Ōąož²Wģœ?į ńż%’Ēʵ¼;ą-RļY‹ūFĢĆił`w‘Ū­{Ļ–æÜZM€tśQ$"īc_ˆ+ŌƒĖx1*0ō•b;Ō•‘ąÉŻŻ‹ESQEQEQEQEQEQEQEQEQEœQšZ(1F)h Å„¢€Š1K@XLRŃE&9£“P (¢€b–ŠfŠ{RÓØ Å&)ŌPEPEPbŽŌ“PGįKŠZ(›iŲ„Å Å„¢€b–Šn(ĄÅ:ŠAä%“S0(Å- Å&)ŌP+ ŚŽŌ“P11F)h Å&:ŠLRm§Q@¬„Q@ĀŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ’ŁPKjÓeõ8š8PK‰±-AOEBPS/dcommon/help.gif!ŽžGIF89aó1’’’’÷’ē÷’Žē÷ÖÖēĪĪĪµĪÖµµÖœµÖœ­½””­{”­k„œZs„Bc{,@ÖČ )č˜sĘ TQą$8(4Ź”%ŃŌC„ÉKÓ$·ÉA› H„„ćP „`$h8Œ€Sšd+°É”\¶ H”@ę%Æś¹ą' 6M HO3ƒSJ‚M ““/:ŠZi[‘7   \—(® R9ƒr ERI…%  „N=a±‚Źqƒ ¶  ƒqʦ©s *q-n/ĒSqĪj ² ”…DŠ XZŸč;PK¤Ž‡{&!PK‰±-A OEBPS/toc.htmMZ²„ ē›®ę¬”

ē›®ę¬”

ć‚æć‚¤ćƒˆćƒ«ćŠć‚ˆć³č‘—ä½œęØ©ęƒ…å ±

ćÆć˜ć‚ć«

1ꦂ要ćØćƒ­ćƒ¼ćƒ‰ćƒžćƒƒćƒ—

2ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć®WebLogic JDBC恮ä½æć„ę–¹

3 DataSourcećƒŖć‚½ćƒ¼ć‚¹å®šē¾©ć®ä½æē”Ø

4 JDBCć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćƒ»ćƒćƒ„ćƒ¼ćƒ‹ćƒ³ć‚°

5 WebLogicćƒ–ćƒ©ćƒ³ćƒ‰DataDirectćƒ‰ćƒ©ć‚¤ćƒć®ä½æē”Ø

6 WebLogicćƒ©ćƒƒćƒ‘ćƒ¼ćƒ»ćƒ‰ćƒ©ć‚¤ćƒć®ä½æć„ę–¹

7 JDBCćƒ‰ćƒ©ć‚¤ćƒć§ć®APIę‹”å¼µę©Ÿčƒ½ć®ä½æć„ę–¹

8 ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ć®ē‰©ē†ēš„ćŖꎄē¶šć®å–å¾—

9 WebLogic Server恫恊恑悋RowSet恮ä½æć„ę–¹

10 JDBCć®ćƒˆćƒ©ćƒ–ćƒ«ć‚·ćƒ„ćƒ¼ćƒ†ć‚£ćƒ³ć‚°

PKE¹›ėRZMZPK‰±-AOEBPS/phys_conr.htmW6ØÉ ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ć®ē‰©ē†ēš„ćŖꎄē¶šć®å–å¾—

8 ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ć®ē‰©ē†ēš„ćŖꎄē¶šć®å–å¾—

恓恮ē« ć§ćÆć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ē‰©ē†ęŽ„ē¶šć«ē›“ęŽ„ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ę–¹ę³•ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚ć©ć†ć—ć¦ć‚‚åæ…要ćŖ堓合仄外ćÆ态ē‰©ē†ēš„ćŖJDBCꎄē¶šćøē›“ęŽ„ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć“ćØćÆćŠč–¦ć‚ć—ć¾ć›ć‚“ć€‚

äø€čˆ¬ēš„恫ćÆ态WebLogic Serverć«ć‚ˆć£ć¦ęä¾›ć•ć‚Œć‚‹ę±Žē”ØJDBCꎄē¶š(ćƒ©ćƒƒćƒ—ć•ć‚ŒćŸē‰©ē†ēš„ćŖꎄē¶š)恫åÆ¾ć™ć‚‹ęŽ„ē¶šć®ć‚­ćƒ£ć‚¹ćƒˆć‚’č”Œć„ć¾ć™ć€‚ć“ć‚Œć«ć‚ˆć‚Šć€ć‚µćƒ¼ćƒćƒ¼ćƒ»ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćÆꎄē¶šćƒ—ćƒ¼ćƒ«ć«åÆ¾ć™ć‚‹ęŽ„ē¶šć®ē®”ē†ć€ęŽ„ē¶šćƒ—ćƒ¼ćƒ«ę©Ÿčƒ½ć®ęœ‰åŠ¹åŒ–ć€ćŠć‚ˆć³ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«ęä¾›ć•ć‚Œć‚‹ęŽ„ē¶šć®å“č³Ŗē¶­ęŒćŒć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚å “åˆć«ć‚ˆć£ć¦ć€DBMSćÆē‰©ē†ēš„ćŖꎄē¶š(å®Ÿéš›ć®ćƒ™ćƒ³ćƒ€ćƒ¼ć®JDBCꎄē¶š)恮ē›“ęŽ„ć‚¢ć‚Æć‚»ć‚¹ć‚’åæ…要ćØ恙悋态ęؙęŗ–ä»„å¤–ć®čæ½åŠ ć®JDBC関連ć‚Æćƒ©ć‚¹ć‚’ęä¾›ć—ć¦ć„ć¾ć™ć€‚ęŽ„ē¶šćƒ—ćƒ¼ćƒ«å†…ć®ē‰©ē†ēš„ćŖꎄē¶šć«ē›“ęŽ„ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć«ćÆ态getVendorConnection悒ä½æē”Ø恗恦ꎄē¶šć‚’ć‚­ćƒ£ć‚¹ćƒˆć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚


ę³Øꄏ:

Oracle恧ćÆ态ē‰©ē†ēš„ćŖꎄē¶šgetVendorConnectionSafeć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćŸć‚ć®åˆ„ć®ćƒ”ć‚«ćƒ‹ć‚ŗćƒ ć‚‚ęä¾›ć—ć¾ć™ć€‚ć“ć®ćƒ”ć‚«ćƒ‹ć‚ŗćƒ ć§ć‚‚ć€ćƒ—ćƒ¼ćƒ«ć•ć‚Œć¦ć„ć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶š(č«–ē†ęŽ„ē¶š)ć‹ć‚‰ćƒ™ćƒ¼ć‚¹ćØćŖ悋ē‰©ē†ęŽ„ē¶š(ćƒ™ćƒ³ćƒ€ćƒ¼ęŽ„ē¶š)恌čæ”ć•ć‚Œć¾ć™ć€‚ćŸć ć—ć€ęŽ„ē¶šć‚’é–‰ć˜ć‚‹ćØć€ć€Œå½±éŸæ恮恂悋ꎄē¶šć®å‰Šé™¤ć‚’ęœ‰åŠ¹åŒ–ć€ć®čØ­å®šć«é–¢äæ‚ćŖćć€ćƒ—ćƒ¼ćƒ«ć«čæ”ć•ć‚Œć¾ć™ć€‚č©³ē“°ćÆ态怌getVendorConnectionSafeć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


ꬔ恮項恧ćÆ态ē‰©ē†ēš„ćŖꎄē¶šć®å–å¾—ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚


ę³Øꄏ:

恩恆恗恦悂åæ…要ćŖ堓合仄外ćÆ态ē‰©ē†ēš„ćŖJDBCꎄē¶šćøē›“ęŽ„ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć“ćØćÆćŠč–¦ć‚ć—ć¾ć›ć‚“ć€‚


ꎄē¶šć‚’é–‹ć

ē‰©ē†ēš„ćŖćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹ć«ćÆć€ęœ€åˆć«ęŽ„ē¶šćƒ—ćƒ¼ćƒ«ć‹ć‚‰ęŽ„ē¶šć‚’å–å¾—ć—ć¦ć‹ć‚‰ć€ę¬”ć®ć„ćšć‚Œć‹ć‚’å®Ÿč”Œć—ć¾ć™ć€‚

  • ē‰©ē†ēš„ćŖꎄē¶šć‚’åæ…要ćØć™ć‚‹ćƒ”ć‚½ćƒƒćƒ‰å†…ć§ć€ē‰©ē†ēš„ćŖꎄē¶šć‚’ęš—é»™ēš„恫ęø”ć—ć¾ć™(getVendorConnection悒ä½æē”Ø)怂

  • ꎄē¶šć‚’WLConnectionć«ć‚­ćƒ£ć‚¹ćƒˆć—ć€getVendorConnectionć‚’å‘¼ć³å‡ŗć—ć¾ć™ć€‚

ē‰©ē†ēš„ćŖćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ē›“ęŽ„ć‚¢ć‚Æć‚»ć‚¹ćÆ态åøøć«ćƒ™ćƒ³ćƒ€ćƒ¼å›ŗęœ‰ć®å‘¼å‡ŗć—ć®å “åˆć«é™å®šć—ć¾ć™ć€‚ćć‚Œä»„å¤–ć®ć™ć¹ć¦ć®ēŠ¶ę³ć§ćÆ态WebLogic Serverć«ć‚ˆć£ć¦ęä¾›ć•ć‚Œć‚‹ę±Žē”ØJDBCꎄē¶šć‚’ä½æē”Øć—ć¾ć™ć€‚ćƒ™ćƒ³ćƒ€ćƒ¼å›ŗęœ‰ć®å‘¼å‡ŗ恗恫åÆ¾ć™ć‚‹ęŽ„ē¶šć‚’é–‹ćć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć‚’ę¬”恫ē¤ŗć—ć¾ć™ć€‚

例8-1 ćƒ™ćƒ³ćƒ€ćƒ¼å›ŗęœ‰ć®å‘¼å‡ŗ恗恫åÆ¾ć™ć‚‹ęŽ„ē¶šć‚’é–‹ćć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

//Import this additional class and any vendor packages
//you may need.
import weblogic.jdbc.extensions.WLConnection
.
.
.
myJdbcMethod()
{ 
  // Connections from a connection pool should always be
  // method-level variables, never class or instance methods.
  Connection conn = null; 
   try { 
     ctx = new InitialContext(ht); 
     // Look up the data source on the JNDI tree and request 
     // a connection. 
     javax.sql.DataSource ds 
        = (javax.sql.DataSource) ctx.lookup ("myDataSource"); 
     // Always get a pooled connection in a try block where it is
     // used completely and is closed if necessary in the finally
     // block. 
     conn = ds.getConnection(); 
     // You can now cast the conn object to a WLConnection 
     // interface and then get the underlying physical connection. 
     java.sql.Connection vendorConn = 
       ((WLConnection)conn).getVendorConnection(); 
     // do not close vendorConn
     // You could also cast the vendorConn object to a vendor 
     // interface, such as: 
     // oracle.jdbc.OracleConnection vendorConn = (OracleConnection)
     // ((WLConnection)conn).getVendorConnection()
     // If you have a vendor-specific method that requires the 
     // physical connection, it is best not to obtain or retain 
     // the physical connection, but simply pass it implicitly 
     // where needed, eg:  //vendor.special.methodNeedingConnection(((WLConnection)conn)).getVendorConnection()); 

ꎄē¶šć‚’é–‰ć˜ć‚‹

JDBCć§ć®ä½œę„­ćŒå®Œäŗ†ć—ćŸć‚‰ć€č«–ē†ēš„ćŖꎄē¶šć‚’é–‰ć˜ć¦ć€ćƒ—ćƒ¼ćƒ«ć«ęˆ»ć™åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ē‰©ē†ēš„ćŖꎄē¶šć‚’ä½æ恄ēµ‚ć‚ć£ćŸć‚‰ć€ę¬”ć®ę“ä½œć‚’č”Œć„ć¾ć™ć€‚

  • ꎄē¶šć‹ć‚‰å–å¾—ć—ćŸć™ć¹ć¦ć®ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’é–‰ć˜ć¾ć™ć€‚

  • ē‰©ē†ēš„ćŖꎄē¶šćÆé–‰ć˜ć¾ć›ć‚“ć€‚ē‰©ē†ēš„ćŖꎄē¶šćÆnull恫čØ­å®šć—ć¾ć™ć€‚

ꎄē¶šć‚’ć©ć®ć‚ˆć†ć«é–‰ć˜ć‚‹ć‹ćÆ态ē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć§ć€Œå½±éŸæ恮恂悋ꎄē¶šć®å‰Šé™¤ć‚’ęœ‰åŠ¹åŒ–ć€ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć®å€¤ć‚’čØ­å®šć—ć¦ęŒ‡å®šć—ć¾ć™ć€‚ć“ć‚Œć‚‰ć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć®č©³ē“°ćÆ态Oracle WebLogic Serverē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ćƒ»ćƒ˜ćƒ«ćƒ—ć®ć€ŒJDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹:꧋ꈐ:ꎄē¶šćƒ—ćƒ¼ćƒ«ć€ćƒšćƒ¼ć‚øć¾ćŸćÆ怌Oracle WebLogic Server MBean Referenceć€ć®JDBCConnectionPoolParamsBeanć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


ę³Øꄏ:

ć€Œå½±éŸæ恮恂悋ꎄē¶šć®å‰Šé™¤ć‚’ęœ‰åŠ¹åŒ–ć€ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ćÆ态꘎ē¤ŗēš„恫getVendorConnectionć‚’å‘¼ć³å‡ŗć™ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«åÆ¾ć—ć¦ć®ćæ適ē”Øć•ć‚Œć¾ć™ć€‚


例8-2 ćƒ™ćƒ³ćƒ€ćƒ¼å›ŗęœ‰ć®å‘¼å‡ŗ恗恫åÆ¾ć™ć‚‹ęŽ„ē¶šć‚’é–‰ć˜ć‚‹ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

// As soon as you are finished with vendor-specific calls,  
    // nullify the reference to the connection. 
    // Do not keep it or close it. 
    // Never use the vendor connection for generic JDBC.
    // Use the logical (pooled) connection for standard JDBC. 
    vendorConn = null; 
    ... do all the JDBC needed for the whole method... 
    // close the logical (pooled) connection to return it to 
    // the connection pool, and nullify the reference. 
    conn.close(); 
    conn = null; 
 } 
 catch (Exception e) 
 { 
   // Handle the exception. 
 } 
 finally 
{ 
   // For safety, check whether the logical (pooled) connection
   // was closed. 
   // Always close the logical (pooled) connection as the  
   // first step in the finally block. 
   if (conn != null) try {conn.close();} catch (Exception ignore){} 
 } 
} 

ć€Œå½±éŸæ恮恂悋ꎄē¶šć®å‰Šé™¤ć‚’ęœ‰åŠ¹åŒ–ć€ćŒTrueć®å “åˆ

å½±éŸæ恮恂悋ꎄē¶šć®å‰Šé™¤ć‚’ęœ‰åŠ¹åŒ–ćŒtrue(ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆå€¤)恮ćØćć«č«–ē†ēš„ćŖꎄē¶šć‚’é–‰ć˜ć‚‹ćØć€ć‚µćƒ¼ćƒćƒ¼ćƒ»ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćÆåŸŗåŗ•ć®ē‰©ē†ēš„ꎄē¶šć‚’ē “ę£„ć—ć¦ć€ćć‚Œć«å–ć£ć¦ä»£ć‚ć‚‹ę–°ć—ć„ęŽ„ē¶šć‚’ä½œęˆć—ć¾ć™ć€‚ć“ć®ć‚¢ć‚Æć‚·ćƒ§ćƒ³ć§ć€ćƒ—ćƒ¼ćƒ«ćÆę¬”ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼ć«åÆ¾ć—ć¦ć€ćć®ćƒ¦ćƒ¼ć‚¶ćƒ¼ćŒćƒ—ćƒ¼ćƒ«ęŽ„ē¶šć®å”Æäø€ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼ć§ć‚悋恓ćØ悒ē¢ŗå®Ÿć«äæčØ¼ć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚ć“ć®ę§‹ęˆć«ć‚ˆć‚Šć€ęŽ„ē¶šć‚’é–‰ć˜ć‚‹ćŸć‚ć®ē°”å˜ć§å®‰å…ØćŖę–¹ę³•ćŒć‚‚ćŸć‚‰ć•ć‚Œć¾ć™ć€‚ćŸć ć—ć€ä»„äø‹ć®ē†ē”±ć«ć‚ˆć‚Šć€ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹äøŠć®ęå¤±ćŒē”Ÿć˜ć¾ć™ć€‚

  • ē‰©ē†ēš„ćŖꎄē¶šćÆꎄē¶šćƒ—ćƒ¼ćƒ«ć®ę–°ć—ć„ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć§ē½®ćę›ćˆć‚‰ć‚Œć¾ć™ć€‚ć“ć®ćŸć‚ć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚µćƒ¼ćƒćƒ¼ćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚µćƒ¼ćƒćƒ¼ć®äø”ę–¹ć§ćƒŖć‚½ćƒ¼ć‚¹ćŒä½æē”Øć•ć‚Œć¾ć™ć€‚

  • å…ƒć®ęŽ„ē¶šć®Statementć‚­ćƒ£ćƒƒć‚·ćƒ„ćŒé–‰ć˜ć‚‰ć‚Œć¦ć€ę–°ć—ć„ęŽ„ē¶šē”Øć«ę–°ć—ć„ć‚­ćƒ£ćƒƒć‚·ćƒ„ćŒé–‹ć‹ć‚Œć¾ć™ć€‚ć—ćŸćŒć£ć¦ć€Statementć‚­ćƒ£ćƒƒć‚·ćƒ„ć‚’ä½æē”Øć™ć‚‹éš›ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć®åˆ©ē‚¹ćÆå¤±ć‚ć‚Œć¾ć™ć€‚

ć€Œå½±éŸæ恮恂悋ꎄē¶šć®å‰Šé™¤ć‚’ęœ‰åŠ¹åŒ–ć€ćŒFalseć®å “åˆ

ć€Œå½±éŸæ恮恂悋ꎄē¶šć®å‰Šé™¤ć‚’ęœ‰åŠ¹åŒ–ć€ć‚’false恧ä½æē”Ø恙悋恮ćÆć€å…¬é–‹ć•ć‚Œć¦ć„ć‚‹ē‰©ē†ēš„ćŖꎄē¶šćŒć€č«–ē†ēš„ćŖꎄē¶šć‚’é–‰ć˜ćŸå¾Œć€äæęŒć¾ćŸćÆ再利ē”Ø恕悌悋恓ćØ恌ēµ¶åÆ¾ć«ćŖ恄ćØē¢ŗäæ”ć—ć¦ć„ć‚‹å “åˆć®ćæ恧恙怂

ć€Œå½±éŸæ恮恂悋ꎄē¶šć®å‰Šé™¤ć‚’ęœ‰åŠ¹åŒ–ć€ćŒfalse恮ćØćć«č«–ē†ēš„ćŖꎄē¶šć‚’é–‰ć˜ć‚‹ćØć€ć‚µćƒ¼ćƒćƒ¼ćƒ»ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćÆå˜ć«ē‰©ē†ēš„ćŖꎄē¶šć‚’ć€å†åˆ©ē”Øć®ćŸć‚ć«ęŽ„ē¶šćƒ—ćƒ¼ćƒ«ć«čæ”ć—ć¾ć™ć€‚ć“ć®ę§‹ęˆć§ćÆć€ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹äøŠć®ęå¤±ćÆęœ€å°é™ć«ęŠ‘ćˆć‚‰ć‚Œć¾ć™ćŒć€ć‚µćƒ¼ćƒćƒ¼ćƒ»ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćÆ态ꎄē¶šć®å“č³Ŗ悄态論ē†ēš„ćŖꎄē¶šćŒé–‰ć˜ć‚‰ć‚ŒćŸå¾Œć®ęŽ„ē¶šē®”ē†ć®åŠ¹ēŽ‡ć‚’äæčؼćÆć—ć¾ć›ć‚“ć€‚ęŽ„ē¶šćŒęŽ„ē¶šćƒ—ćƒ¼ćƒ«ć«čæ”ć•ć‚Œć‚‹å‰ć«ć€ćć®ęŽ„ē¶šćŒä»–ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«ć‚ˆć‚‹å†åˆ©ē”Ø恫適恗恦恄悋恓ćØ悒ē¢ŗčŖć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

ē‰©ē†ēš„ćŖꎄē¶šć®ä½æē”Øć«é–¢ć™ć‚‹åˆ¶é™

ꎄē¶šćƒ—ćƒ¼ćƒ«ć®č«–ē†ēš„ćŖꎄē¶šć®ä»£ć‚ć‚Šć«ē‰©ē†ēš„ćŖꎄē¶šć‚’ä½æē”Ø恙悋恓ćØćÆćŠč–¦ć‚ć—ć¾ć›ć‚“ć€‚ćŸć ć—ć€ćŸćØ恈恰STRUCTć®ä½œęˆćŖ恩恫态ē‰©ē†ēš„ćŖꎄē¶šć‚’ä½æē”Ø恙悋åæ…č¦ćŒć‚ć‚‹å “合ćÆ态仄äø‹ć®č² ę‹…ćØåˆ¶é™ć‚’č€ƒę…®ć—ć¦ćć ć•ć„ć€‚

  • ē‰©ē†ēš„ćŖꎄē¶šćÆć‚µćƒ¼ćƒćƒ¼å“ć‚³ćƒ¼ćƒ‰ć§ć®ćæä½æē”Øć§ćć¾ć™ć€‚

  • ē‰©ē†ēš„ćŖꎄē¶šć‚’ä½æē”Øć™ć‚‹å “åˆć€ć‚Øćƒ©ćƒ¼å‡¦ē†ć‚„ę–‡ć®ć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ćŖ恩态WebLogic ServerćŒęä¾›ć™ć‚‹ęŽ„ē¶šē®”ē†ć®åˆ©ē‚¹ćŒć™ć¹ć¦å¤±ć‚ć‚Œć¾ć™ć€‚

  • ē‰©ē†ēš„ćŖꎄē¶šćÆ态恝悌悒åæ…要ćØć™ć‚‹ćƒ™ćƒ³ćƒ€ćƒ¼å›ŗęœ‰ć®ćƒ”ć‚½ćƒƒćƒ‰ć¾ćŸćÆć‚Æćƒ©ć‚¹ć«ć®ćæä½æē”Øć—ć¾ć™ć€‚ę±Žē”ØJDBC (ę–‡ć‚„ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³å‘¼å‡ŗć—ć®ä½œęˆćŖ恩)恫ćÆē‰©ē†ēš„ćŖꎄē¶šć‚’ä½æē”Ø恗ćŖ恄恧恏恠恕恄怂

PKĪ¦ŒĢ\6W6PK‰±-AOEBPS/rmidriver.htm€’ WebLogicćƒ©ćƒƒćƒ‘ćƒ¼ćƒ»ćƒ‰ćƒ©ć‚¤ćƒć®ä½æć„ę–¹

6 WebLogicćƒ©ćƒƒćƒ‘ćƒ¼ćƒ»ćƒ‰ćƒ©ć‚¤ćƒć®ä½æć„ę–¹

恓恮ē« ć§ćÆ态非ęŽØå„Ø恮WebLogicćƒ©ćƒƒćƒ‘ćƒ¼ćƒ»ćƒ‰ćƒ©ć‚¤ćƒć‚’WebLogic Server恧ä½æē”Øć™ć‚‹ę–¹ę³•ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚


ę³Øꄏ:

ę–°ć—ć„ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆ态DataSourceć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æć£ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹ć“ćØć‚’ćŠč–¦ć‚ć—ć¾ć™ć€‚DataSourceć‚Ŗ惖ć‚ø悧ć‚Æ惈(WebLogicćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćŠć‚ˆć³ćƒžćƒ«ćƒćƒ»ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹)悒JNDI惄ćƒŖćƒ¼ćØäø€ē·’恫ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹å†…ć®ćƒ—ćƒ¼ćƒ«ć•ć‚ŒćŸęŽ„ē¶šć«ć‚¢ć‚Æć‚»ć‚¹ć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć§ćć¾ć™ć€‚WebLogicćƒ©ćƒƒćƒ‘ćƒ¼ćƒ»ćƒ‰ćƒ©ć‚¤ćƒćÆ非ęŽØå„Ø恫ćŖć£ć¦ć„ć¾ć™ć€‚JDBC 1.x API悒ä½æē”Øć—ćŸę—¢å­˜ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć¾ćŸćÆćƒ¬ć‚¬ć‚·ćƒ¼ćƒ»ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®å “åˆćÆ态WebLogicćƒ©ćƒƒćƒ‘ćƒ¼ćƒ»ćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć§ćć¾ć™ć€‚


WebLogic RMIćƒ‰ćƒ©ć‚¤ćƒć®ä½æć„ę–¹(非ęŽØå„Ø)


ę³Øꄏ:

RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆę©Ÿčƒ½ćÆ非ęŽØå„Øć§ć€å°†ę„ć®ćƒŖćƒŖćƒ¼ć‚¹ć§ćÆå‰Šé™¤ć•ć‚Œć¾ć™ć€‚ć“ć®ćƒŖćƒŖćƒ¼ć‚¹ć®WLConnectionćØWLDataSourceć«å°Žå…„ć•ć‚ŒćŸę©Ÿčƒ½ćÆ态RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć§ćÆć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć›ć‚“ć€‚ć€ŽOracle WebLogic Server JDBCć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć€ć®č©²å½“ćƒŖćƒŖćƒ¼ć‚¹ć§ć®ę–°č¦JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ę©Ÿčƒ½ćØå¤‰ę›“ć•ć‚ŒćŸJDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ę©Ÿčƒ½ć«é–¢ć™ć‚‹é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćÆ态DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ćƒ«ćƒƒć‚Æć‚¢ćƒƒćƒ—ć™ć‚‹ć“ćØ恧态DBMSćø恮ꎄē¶šć‚’ē¢ŗē«‹ć—ć¾ć™ć€‚ć“ć®ćƒ«ćƒƒć‚Æć‚¢ćƒƒćƒ—ćÆ态Java Naming and Directory Interface (JNDI)惫惃ć‚Æć‚¢ćƒƒćƒ—ć‚’ä½æć†ć‹ć€ć¾ćŸćÆć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«ä»£ć‚ć£ć¦JNDI惫惃ć‚Æć‚¢ćƒƒćƒ—ć‚’å®Ÿč”Œć™ć‚‹WebLogic Server悒ē›“ęŽ„å‘¼ć³å‡ŗ恙恓ćØć«ć‚ˆć‚Šå®Ÿč”Œć•ć‚Œć¾ć™ć€‚

RMIćƒ‰ćƒ©ć‚¤ćƒćÆ态WebLogic t3ćƒ‰ćƒ©ć‚¤ćƒ(恓恮ćƒŖćƒŖćƒ¼ć‚¹ć§ćÆ非ęŽØå„Ø)ćØPoolćƒ‰ćƒ©ć‚¤ćƒ(非ęŽØå„Ø)ć®ę©Ÿčƒ½ć«å–ć£ć¦ä»£ć‚ć‚‹ć‚‚ć®ć§ć€ē‹¬č‡Ŗ恮t3ćƒ—ćƒ­ćƒˆć‚³ćƒ«ć§ćÆćŖ恏Javaęؙęŗ–恮Remote Method Invocation (RMI)悒ä½æē”Ø恗恦WebLogic Server恫ꎄē¶šć—ć¾ć™ć€‚

RMIå®Ÿč£…ć®č©³ē“°ćÆćƒ‰ćƒ©ć‚¤ćƒć«ć‚ˆć£ć¦č‡Ŗ動ēš„ć«å‡¦ē†ć•ć‚Œć‚‹ćŸć‚ć€WebLogic JDBC/RMIćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć™ć‚‹ćŸć‚ć«RMI恮ēŸ„識ćÆåæ…要恧ćÆć‚ć‚Šć¾ć›ć‚“ć€‚

RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć®ē›øäŗ’運ē”Øꀧ

ä»„å‰ć®WebLogic ServerćƒŖćƒŖćƒ¼ć‚¹ćØ恮ē›øäŗ’運ē”ØꀧćÆé™ć‚‰ć‚Œć¦ć„ć¾ć™ć€‚å‚åŠ č€…(ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćØć‚µćƒ¼ćƒćƒ¼ć¾ćŸćÆć‚µćƒ¼ćƒćƒ¼ćØć‚µćƒ¼ćƒćƒ¼)ćÆć€åŒć˜ćƒ”ć‚øćƒ£ćƒ¼ćƒ»ćƒŖćƒŖćƒ¼ć‚¹ć§ć‚ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚åˆęœŸć®10.xć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćÆ态ucp.jar悒CLASSPATH恫čæ½åŠ ć™ć‚‹ć“ćØć§ć€ę–°ć—ć„ćƒć‚¤ćƒ³ćƒˆćƒ»ćƒŖćƒŖćƒ¼ć‚¹ć‚„ćƒ‘ćƒƒćƒćƒ»ć‚»ćƒƒćƒˆćƒ»ćƒŖćƒŖćƒ¼ć‚¹ćØē›øäŗ’運ē”Øć™ć‚‹ć‚ˆć†ć«ę›“ę–°ć§ćć¾ć™ć€‚

WebLogic RMIćƒ‰ćƒ©ć‚¤ćƒć®ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ć®č€ƒę…®äŗ‹é …

WebLogic Server 10.3.2.0ć‚ˆć‚Šć‚‚å‰ć«ćÆ态RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć§ćÆDataSourceć‚Ŗ惖ć‚ø悧ć‚Æ惈ćø恮ęœŖčرåÆ恮RMIć‚¢ć‚Æć‚»ć‚¹ćŒåÆčƒ½ć§ć‚ć‚Šć€ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ć®ę½œåœØēš„ćŖč„†å¼±ę€§ćØćŖć£ć¦ć„ć¾ć—ćŸć€‚ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćøć®ć‚¢ć‚Æć‚»ć‚¹ćŒē®”ē†ć•ć‚ŒćŖć„å “åˆćŒć‚ć‚‹ćŸć‚ć§ć™ć€‚ć“ć®ć‚ˆć†ćŖē’°å¢ƒć§ćÆRMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć‚’WebLogicćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćŠć‚ˆć³ćƒžćƒ«ćƒćƒ»ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćØē½®ćę›ćˆć‚‹ć“ćØ态RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćŒä½æē”Øć•ć‚Œć‚‹å “åˆć«ćÆ強力ćŖ惍惃惈ćƒÆćƒ¼ć‚Æćƒ»ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ę‰‹ę®µć‚’å®Ÿč£…ć™ć‚‹ć“ćØć‚’ćŠč–¦ć‚ć—ć¾ć™ć€‚

WebLogic Server 10.3.2.0仄äøŠć®ćƒ‰ćƒ”ć‚¤ćƒ³ć«ćŠć‘ć‚‹ć‚µćƒ¼ćƒćƒ¼ć§ćÆ态DataSourceć‚Ŗ惖ć‚ø悧ć‚Æ惈ćø恮RMIć‚¢ć‚Æć‚»ć‚¹ćÆweblogic.jdbc.remoteEnabledć‚·ć‚¹ćƒ†ćƒ ćƒ»ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć«ć‚ˆć£ć¦ć‚µćƒ¼ćƒćƒ¼ćƒ»ćƒ¬ćƒ™ćƒ«ć§åˆ¶å¾”ć•ć‚Œć¾ć™ć€‚ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć§ćÆē„”åŠ¹ć«ćŖć£ć¦ć„ć¾ć™ć€‚RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćŒDataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć‚¢ć‚Æć‚»ć‚¹ć§ćć‚‹ć‚ˆć†ć«ć™ć‚‹ć«ćÆ态weblogic.jdbc.remoteEnabledćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć®å€¤ć‚’true恫čØ­å®šć—ć¾ć™ć€‚RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć‚’WebLogicćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćŠć‚ˆć³ćƒžćƒ«ćƒćƒ»ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćØē½®ćę›ćˆć‚‹ć“ćØ态RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćŒä½æē”Øć•ć‚Œć‚‹å “åˆć«ćÆ強力ćŖ惍惃惈ćƒÆćƒ¼ć‚Æćƒ»ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ę‰‹ę®µć‚’å®Ÿč£…ć™ć‚‹ć“ćØć‚’ćŠč–¦ć‚ć—ć¾ć™ć€‚


ę³Øꄏ:

weblogic.jdbc.remoteEnabledć‚·ć‚¹ćƒ†ćƒ ćƒ»ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ćÆWebLogic Server 10.3.6.0恧ćÆ非ęŽØå„Ø恧恙怂


WebLogic Server 10.3.6.0仄äøŠć®ćƒ‰ćƒ”ć‚¤ćƒ³ć®ć‚µćƒ¼ćƒćƒ¼ć§ćÆ态RMI JDBC Securityćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æ悒Secure恫čØ­å®šć—ć¦ć€RMIćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć®DataSourceć‚Ŗ惖ć‚ø悧ć‚Æ惈ćØ恮通äæ”ć‚’ć‚µćƒ¼ćƒćƒ¼ćƒ»ćƒ¬ćƒ™ćƒ«ć§äæč­·ć§ćć¾ć™ć€‚

ęœ‰åŠ¹ćŖ値ćÆꬔ恮ćØ恊悊恧恙怂

  • Secure: ćƒŖćƒ¢ćƒ¼ćƒˆćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćŠć‚ˆć³ćƒŖćƒ¢ćƒ¼ćƒˆćƒ»ć‚µćƒ¼ćƒćƒ¼ćŒRMIäøŠć§č”Œć†ć™ć¹ć¦ć®ē€äæ”JDBC呼å‡ŗ恗恌ē„”åŠ¹ć§ć™ć€‚ć™ć¹ć¦ć®ē€äæ”JDBC呼å‡ŗ恗ćÆJTS悒ä½æē”Ø恗态ē®”ē†č€…čŖčØ¼ćŒć‚ć‚Šć¾ć™ć€‚åŒæåć‚’å«ć‚ä»–ć®ć™ć¹ć¦ć®ć‚µćƒ–ć‚ø悧ć‚Æ惈ćÆę‹’å¦ć•ć‚Œć¾ć™ć€‚ć“ć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć§ćÆę¬”ć®ć„ćšć‚Œć‹ćŒåæ…要恧恙怂

    • ćƒ‰ćƒ”ć‚¤ćƒ³å†…é€šäæ”ć®å “åˆ: ꧋ꈐęøˆSSLćƒŖć‚¹ćƒ‹ćƒ³ć‚°ćƒ»ćƒćƒ¼ćƒˆć€‚

    • ćƒ‰ćƒ”ć‚¤ćƒ³é–“é€šäæ”ć®å “åˆ: å‚åŠ ćƒ‰ćƒ”ć‚¤ćƒ³é–“ć®ę§‹ęˆęøˆć‚Æćƒ­ć‚¹ćƒ‰ćƒ”ć‚¤ćƒ³ćƒ»ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ć€‚ć€ŽOracle WebLogic Server恮äæč­·ć€ć®WebLogic Server間恮ć‚Æćƒ­ć‚¹ćƒ‰ćƒ”ć‚¤ćƒ³ćƒ»ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ć®ęœ‰åŠ¹åŒ–ć«é–¢ć™ć‚‹é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

    ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ćŒę§‹ęˆć•ć‚Œć¦ć„ćŖć„å “åˆć€ć™ć¹ć¦ć®ę“ä½œćÆä¾‹å¤–ćŒē™ŗē”Ÿć—ć¦å¤±ę•—ć—ć¾ć™ć€‚

  • Compatibility: ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ć‚µćƒ–ć‚ø悧ć‚Æ惈恫åÆ¾ć—ć¦å®‰å…Ø恧ćŖć„ćƒćƒ£ćƒćƒ«ć‚’ä½æē”Øć¾ć™ć€‚ć¾ćŸć€RMI悒ä½æē”Øć—ć¦ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćØ恍ē®”ē†č€…čŖčØ¼ćŒć‚ć‚Šć¾ć›ć‚“ć€‚ć“ć®čح定ćÆ态RMIćŒćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹å¾“ę„ć®å®Ÿč£…ć®å‹•ä½œć‚’åę˜ ć—ć¦ć„ć¾ć™ć€‚ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«ć‚ˆć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćøć®ć‚¢ć‚Æć‚»ć‚¹ćŒē®”ē†ć•ć‚ŒćŖć„å “åˆćŒć‚ć‚‹ćŸć‚ć€ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ćŒę½œåœØēš„ć«č„†å¼±ć«ćŖć‚Šć¾ć™ć€‚ć“ć®čح定ćÆć€å¼·å›ŗćŖ惍惃惈ćƒÆćƒ¼ć‚Æćƒ»ć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ćŒčØ­ē½®ć•ć‚Œć¦ć„ć‚‹ćØćć«ć®ćæä½æē”Øć—ć¾ć™ć€‚CompatibilityćŒćƒ‡ćƒ•ć‚©ćƒ«ćƒˆå€¤ć§ć™ć€‚

Oracle WebLogic Serverē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ćƒ»ćƒ˜ćƒ«ćƒ—恮RMI JDBCć‚»ć‚­ćƒ„ćƒŖćƒ†ć‚£ć®ęœ‰åŠ¹åŒ–ć«é–¢ć™ć‚‹é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


ę³Øꄏ:

weblogic.jdbc.remoteEnabledć‚·ć‚¹ćƒ†ćƒ ćƒ»ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ćŒtrue恫čØ­å®šć•ć‚Œć¦ć„ć‚‹å “åˆć€RMI JDBC Security悒ć‚Ŗćƒ¼ćƒćƒ¼ćƒ©ć‚¤ćƒ‰ć—ć€ę—¢å­˜ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćØ恮äø‹ä½äŗ’ę›ę€§ć‚’ęä¾›ć—ć¾ć™ć€‚


WebLogic RMIćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć™ć‚‹ćŸć‚ć®WebLogic Server恮čح定

RMIćƒ‰ćƒ©ć‚¤ćƒć«ćÆ态DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’é€šć—ć¦ć ć‘ć‚¢ć‚Æć‚»ć‚¹ć§ćć¾ć™ć€‚DataSourceć‚Ŗ惖ć‚ø悧ć‚Æ惈ćÆ态ē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć§ä½œęˆć—ć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§RMIćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Ø恙悋恫ćÆć€ć¾ćšWebLogic Serverę§‹ęˆć«DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć—ć¾ć™ć€‚

RMIćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć™ć‚‹ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćƒ»ć‚³ćƒ¼ćƒ‰

RMIćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Ø恗恦态WebLogic Serverćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć—ć€ä½æē”Øć™ć‚‹ę–¹ę³•ć‚’ä»„äø‹ć®ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć«ē¤ŗć—ć¾ć™ć€‚

åæ…要ćŖćƒ‘ćƒƒć‚±ćƒ¼ć‚øć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć™ć‚‹

RMIćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’取得/ä½æē”Øć™ć‚‹å‰ć«ć€ę¬”ć®ćƒ‘ćƒƒć‚±ćƒ¼ć‚øć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć—ć¾ć™ć€‚

javax.sql.DataSource 
java.sql.*
java.util.*
javax.naming.*

ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹

WebLogic JDBC/RMIć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćÆ态ē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć§å®šē¾©ć•ć‚ŒćŸDataSource恋悉DBMSćø恮ꎄē¶šć‚’å–å¾—ć—ć¾ć™ć€‚ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćÆ态仄äø‹ć®2é€šć‚Šć®ę–¹ę³•ć§DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’å–å¾—ć§ćć¾ć™ć€‚

  • JNDI惫惃ć‚Æć‚¢ćƒƒćƒ—ć‚’ä½æē”Øć—ć¾ć™ć€‚ć“ć‚ŒćŒęœ€ć‚‚ē›“ꎄēš„ć§ęœ›ć¾ć—ć„ę–¹ę³•ć§ć™ć€‚

  • Driver.connect()ćƒ”ć‚½ćƒƒćƒ‰ć§DataSourceåć‚’RMIćƒ‰ćƒ©ć‚¤ćƒć«ęø”ć—ć¾ć™ć€‚ć“ć®å “åˆć€WebLogic ServerćÆć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«ä»£ć‚ć£ć¦JNDI惫惃ć‚Æć‚¢ćƒƒćƒ—ć‚’å®Ÿč”Œć—ć¾ć™ć€‚

JNDI惫惃ć‚Æć‚¢ćƒƒćƒ—ć‚’ä½æē”Ø恗恦ꎄē¶šć‚’å–å¾—ć™ć‚‹

JNDI悒ä½æē”Ø恗恦WebLogic RMIćƒ‰ćƒ©ć‚¤ćƒć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć«ćÆ态DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®åå‰ć‚’ćƒ«ćƒƒć‚Æć‚¢ćƒƒćƒ—ć™ć‚‹ć“ćØ恧态JNDI惄ćƒŖćƒ¼ć‹ć‚‰Contextć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’å–å¾—ć—ć¾ć™ć€‚ćŸćØ恈恰态ē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć§å®šē¾©ć•ć‚ŒćŸć€ŒmyDataSource怍ćØ恄恆DataSourceć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć«ćÆ态仄äø‹ć®ć‚ˆć†ć«ć—ć¾ć™ć€‚

Context ctx = null;
  Hashtable ht = new Hashtable();
  ht.put(Context.INITIAL_CONTEXT_FACTORY,
         "weblogic.jndi.WLInitialContextFactory");
  ht.put(Context.PROVIDER_URL,
         "t3://hostname:port");
  try {
    ctx = new InitialContext(ht);
    javax.sql.DataSource ds 
      = (javax.sql.DataSource) ctx.lookup ("myDataSource");
   java.sql.Connection conn = ds.getConnection();
   // You can now use the conn object to create 
   //  a Statement object to execute
   //  SQL statements and process result sets:
   Statement stmt = conn.createStatement();
   stmt.execute("select * from someTable");
   ResultSet rs = stmt.getResultSet(); 
   // Do not forget to close the statement and connection objects
   //  when you are finished:
 }
  catch (Exception e) {
    // a failure occurred
    log message;
  }
} finally {    
  try { 
    ctx.close(); 
  } catch (Exception e) {
     log message; }
  try { 
    if (rs != null) rs.close(); 
  } catch (Exception e) {  
     log message; }
  try { 
    if (stmt != null) stmt.close(); 
  } catch (Exception e) {  
     log message; }
  try { 
    if (conn != null) conn.close(); 
  } catch (Exception e) {  
     log message; }
}

(hostnamećÆWebLogic Server恌ēØ¼åƒć™ć‚‹ćƒžć‚·ćƒ³ć®åå‰ć€portćÆćć®ćƒžć‚·ćƒ³ć«ćŠć„ć¦ęŽ„ē¶šćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’ćƒŖć‚¹ćƒ‹ćƒ³ć‚°ć™ć‚‹ćƒćƒ¼ćƒˆć®ē•Ŗå·ć§ć™)怂

ć“ć®ä¾‹ć§ćÆć€ćƒćƒƒć‚·ćƒ„č”Øć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Ø恗恦态JNDI惫惃ć‚Æć‚¢ćƒƒćƒ—ć«åæ…要ćŖćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æ悒ęø”ć—ć¦ć„ć¾ć™ć€‚JNDI惫惃ć‚Æć‚¢ćƒƒćƒ—ć‚’å®Ÿč”Œć™ć‚‹ć«ćÆä»–ć®ę–¹ę³•ć‚‚ć‚ć‚Šć¾ć™ć€‚č©³ē“°ćÆ态怎Oracle WebLogic Server JNDIć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

惫惃ć‚Æć‚¢ćƒƒćƒ—ć®å¤±ę•—ć‚’ę•ę‰ć™ć‚‹ćŸć‚ć«JNDI惫惃ć‚Æć‚¢ćƒƒćƒ—ćŒtry/catch惖惭惃ć‚Æć§åŒ…ć¾ć‚Œć¦ć„ć‚‹ē‚¹ć€ć‚³ćƒ³ćƒ†ć‚­ć‚¹ćƒˆćŒfinally惖惭惃ć‚Æ恮äø­ć§é–‰ć˜ć‚‰ć‚Œć¦ć„ć‚‹ē‚¹ć«ē•™ę„ć—ć¾ć™ć€‚

WebLogic RMIćƒ‰ćƒ©ć‚¤ćƒć ć‘ć‚’ä½æē”Øć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹

DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ćƒ«ćƒƒć‚Æć‚¢ćƒƒćƒ—ć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹ä»£ć‚ć‚Šć«ć€Driver.connect()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦WebLogic Serverć«ć‚¢ć‚Æć‚»ć‚¹ć§ćć¾ć™ć€‚ć“ć®å “åˆćÆ态JDBC/RMIćƒ‰ćƒ©ć‚¤ćƒć«ć‚ˆć£ć¦JNDI惫惃ć‚Æć‚¢ćƒƒćƒ—ćŒå®Ÿč”Œć•ć‚Œć¾ć™ć€‚WebLogic Serverć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć«ćÆ态WebLogic Server恮URLćØDataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®åå‰ć‚’å®šē¾©ć™ć‚‹ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æ悒Driver.connect()ćƒ”ć‚½ćƒƒćƒ‰ć«ęø”ć—ć¾ć™ć€‚ćŸćØ恈恰态ē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć§å®šē¾©ć•ć‚ŒćŸć€ŒmyDataSource怍ćØ恄恆DataSourceć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć«ćÆ态仄äø‹ć®ć‚ˆć†ć«ć—ć¾ć™ć€‚

java.sql.Driver myDriver = (java.sql.Driver)
  Class.forName("weblogic.jdbc.rmi.Driver").newInstance();
String url = "jdbc:weblogic:rmi";
java.util.Properties props = new java.util.Properties();
props.put("weblogic.server.url", "t3://hostname:port");
props.put("weblogic.jdbc.datasource", "myDataSource");
java.sql.Connection conn = myDriver.connect(url, props);

(hostnamećÆWebLogic Server恌ēØ¼åƒć™ć‚‹ćƒžć‚·ćƒ³ć®åå‰ć€portćÆćć®ćƒžć‚·ćƒ³ć«ćŠć„ć¦ęŽ„ē¶šćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’ćƒŖć‚¹ćƒ‹ćƒ³ć‚°ć™ć‚‹ćƒćƒ¼ćƒˆć®ē•Ŗå·ć§ć™)怂

ć¾ćŸć€JNDIćƒ¦ćƒ¼ć‚¶ćƒ¼ęƒ…å ±ć‚’čØ­å®šć™ć‚‹ćŸć‚ć«ä½æē”Ø恙悋仄äø‹ć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚‚å®šē¾©ć§ćć¾ć™ć€‚

  • weblogic.user - ćƒ¦ćƒ¼ć‚¶ćƒ¼åć‚’ęŒ‡å®šć—ć¾ć™ć€‚

  • weblogic.credential - weblogic.userć®ćƒ‘ć‚¹ćƒÆćƒ¼ćƒ‰ć‚’ęŒ‡å®šć—ć¾ć™ć€‚

WebLogic RMIćƒ‰ćƒ©ć‚¤ćƒć«ć‚ˆć‚‹č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°

č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć‚’å‘äøŠć•ć›ć‚‹ćŸć‚ć®WebLogic Server JDBCę©Ÿčƒ½ć§ć™ć€‚é€šåøø态ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć§ResultSet.next()ć‚’å‘¼ć³å‡ŗ恙ćØ态WebLogic Server恧ćÆDBMSć‹ć‚‰å˜äø€č”Œć‚’å–å¾—ć—ć€ć“ć‚Œć‚’ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆJVMć«č»¢é€ć—ć¾ć™ć€‚č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ćŒęœ‰åŠ¹ć«ćŖć£ć¦ć„ć‚‹ćØ态ResultSet.next()悒1å›žå‘¼ć³å‡ŗ恙恠恑恧複ꕰ恮DBMSč”ŒćŒå–å¾—ć•ć‚Œć€ć“ć‚Œć‚‰ćŒć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćƒ»ćƒ”ćƒ¢ćƒŖćƒ¼ć«ć‚­ćƒ£ćƒƒć‚·ćƒ„ć•ć‚Œć¾ć™ć€‚č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ć‚’č”Œć†ćØć€ćƒ‡ćƒ¼ć‚æå–å¾—ć®ćŸć‚ć®é€šäæ”ć®å›žę•°ćŒęø›ć‚‹ć“ćØć§ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćŒå‘äøŠć—ć¾ć™ć€‚


ę³Øꄏ:

ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćØWebLogic ServerćŒåŒć˜JVMć«ć‚ć‚‹å “åˆć€č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ćÆå®Ÿč”Œć•ć‚Œć¾ć›ć‚“ć€‚


č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ćÆć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®[č”Œć®ćƒ—ćƒŖćƒ•ć‚§ćƒƒćƒć‚’ęœ‰åŠ¹åŒ–]å±žę€§ć§ęœ‰åŠ¹ć«ć—ćŸć‚Šē„”åŠ¹ć«ć—ćŸć‚Šć§ćć¾ć™ć€‚ć¾ćŸć€ResultSet.next()ć®å‘¼å‡ŗ恗恔ćØć«å–å¾—ć•ć‚Œć‚‹č”Œć®ę•°ćÆć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹å±žę€§[惗ćƒŖćƒ•ć‚§ćƒƒćƒć™ć‚‹č”Œć‚µć‚¤ć‚ŗ]恧čØ­å®šć—ć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®å±žę€§ćÆ态ē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć§čØ­å®šć—ć¾ć™ć€‚č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ć‚’ęœ‰åŠ¹ć«ć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć«č”Œć®ćƒ—ćƒŖćƒ•ć‚§ćƒƒćƒćƒ»ć‚µć‚¤ć‚ŗć®å±žę€§ć‚’čØ­å®šć™ć‚‹ć«ćÆć€ę¬”ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. ć¾ć ćć†ć—ć¦ć„ćŖć„å “åˆć€ē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć®ćƒć‚§ćƒ³ć‚øćƒ»ć‚»ćƒ³ć‚æćƒ¼ć§ć€Œćƒ­ćƒƒć‚Æ恗恦ē·Ø集怍悒ć‚ÆćƒŖ惃ć‚Æć—ć¾ć™ć€‚

  2. ć€Œćƒ‰ćƒ”ć‚¤ćƒ³ę§‹é€ ć€ćƒ„ćƒŖćƒ¼ć§ć€Œć‚µćƒ¼ćƒ“ć‚¹ć€>怌JDBCć€ć‚’å±•é–‹ć—ć€ć€Œćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć€ć‚’éøęŠžć—ć¾ć™ć€‚

  3. ć€Œćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ę¦‚č¦ć€ćƒšćƒ¼ć‚øć§ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹åć‚’ć‚ÆćƒŖ惃ć‚Æć—ć¾ć™ć€‚

  4. 怌꧋ꈐ怍>怌å…Øčˆ¬ć€ć‚æ惖悒éøꊞ恗恦恋悉态仄äø‹ć®ä½œę„­ć‚’č”Œć„ć¾ć™ć€‚

    1. ć€Œč”Œć®ćƒ—ćƒŖćƒ•ć‚§ćƒƒćƒć‚’ęœ‰åŠ¹åŒ–ć€ćƒć‚§ćƒƒć‚Æćƒ»ćƒœćƒƒć‚Æć‚¹ć‚’éøęŠžć—ć¾ć™ć€‚

    2. [惗ćƒŖćƒ•ć‚§ćƒƒćƒć™ć‚‹č”Œć®ć‚µć‚¤ć‚ŗ]恫态ResultSet.next()ć®å‘¼å‡ŗ恗恔ćØć«ć‚­ćƒ£ćƒƒć‚·ćƒ„ć™ć‚‹č”Œć®ę•°ć‚’å…„åŠ›ć—ć¾ć™ć€‚

  5. 怌äæå­˜ć€ć‚’ć‚ÆćƒŖ惃ć‚Æć—ć¾ć™ć€‚

  6. ē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć®ćƒć‚§ćƒ³ć‚øćƒ»ć‚»ćƒ³ć‚æćƒ¼ć§ć€Œå¤‰ę›“ć®ć‚¢ć‚Æćƒ†ć‚£ćƒ–åŒ–ć€ć‚’ć‚ÆćƒŖ惃ć‚Æć—ć¦ć“ć‚Œć‚‰ć®å¤‰ę›“ć‚’ć‚¢ć‚Æćƒ†ć‚£ćƒ–åŒ–ć—ć¾ć™ć€‚

Oracle WebLogic Serverē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ćƒ»ćƒ˜ćƒ«ćƒ—ć®ć€ŒJDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹>꧋ꈐ>äø€čˆ¬ć€ćƒšćƒ¼ć‚øć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

WebLogic RMIćƒ‰ćƒ©ć‚¤ćƒć«ć‚ˆć‚‹č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ć®é‡č¦ćŖ制限äŗ‹é …

RMIćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć—ć¦č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ć‚’å®Ÿč£…ć™ć‚‹å “åˆćÆ态仄äø‹ć®åˆ¶é™äŗ‹é …ćŒć‚ć‚‹ć“ćØ恫ę³Øę„ć—ć¦ćć ć•ć„ć€‚

  • č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ćÆ态ēµęžœć‚»ćƒƒćƒˆåž‹ćŒTYPE_FORWARD_ONLYćŠć‚ˆć³CONCUR_READ_ONLY恮äø”ę–¹ć§ć‚ć‚‹å “åˆć«ć®ćæå®Ÿč”Œć•ć‚Œć¾ć™ć€‚

  • ēµęžœć‚»ćƒƒćƒˆć®ćƒ‡ćƒ¼ć‚æåž‹ć«ć‚ˆć£ć¦ćÆć€ćć®ēµęžœć‚»ćƒƒćƒˆć®ć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ćŒē„”åŠ¹ć§ć‚ć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚ć“ć‚Œć«ćÆ仄äø‹ćŒå«ć¾ć‚Œć¾ć™ć€‚

    • LONGVARCHAR/LONGVARBINARY

    • NULL

    • BLOB/CLOB

    • ARRAY

    • REF

    • STRUCT

    • JAVA_OBJECT

  • č”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ćŒęœ‰åŠ¹ć§ć€ćć®ēµęžœć‚»ćƒƒćƒˆć«åÆ¾ć—ć¦ć‚¢ć‚Æćƒ†ć‚£ćƒ–ćŖå “åˆć€äø€éƒØ恮ResultSetćƒ”ć‚½ćƒƒćƒ‰ćÆć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć›ć‚“ć€‚ćć®ć»ćØ悓恩ćÆć€ć‚¹ćƒˆćƒŖćƒ¼ćƒŸćƒ³ć‚°ćƒ»ćƒ‡ćƒ¼ć‚æć€ć‚¹ć‚Æćƒ­ćƒ¼ćƒ«åÆčƒ½ćŖēµęžœć‚»ćƒƒćƒˆć€ć¾ćŸćÆč”Œć‚­ćƒ£ćƒƒć‚·ćƒ³ć‚°ćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ćŖć„ćƒ‡ćƒ¼ć‚æåž‹ć«é–¢äæ‚ć—ć¦ć„ć¾ć™ć€‚ć“ć‚Œć«ćÆ仄äø‹ćŒå«ć¾ć‚Œć¾ć™ć€‚

    • getAsciiStream()

    • getUnicodeStream()

    • getBinaryStream()

    • getCharacterStream()

    • isBeforeLast()

    • isAfterLast()

    • isFirst()

    • isLast()

    • getRow()

    • getObject (Map)

    • getRef()

    • getBlob()/getClob()

    • getArray()

    • getDate()

    • getTime()

    • getTimestamp()

ć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ä½æē”Øę™‚ć®åˆ¶é™äŗ‹é …

ć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³å†…ć«ćŠć‘ć‚‹RowSetć®å–å¾—ćÆ态怌惕悧惃惁順åŗē„”åŠ¹ć€ä¾‹å¤–ć«ć‚ˆć£ć¦å¤±ę•—ć™ć‚‹ć“ćØćŒć‚ć‚Šć¾ć™ć€‚ä¾‹:

  1. RMI呼å‡ŗ恗恌čæ”ć‚‹ćØć€ć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćÆć‚µćƒ¼ćƒćƒ¼ćƒ»ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć«ć‚ˆć£ć¦č‡Ŗ動ēš„恫äø­ę–­ć•ć‚Œć¾ć™ć€‚

  2. JDBCćƒ‰ćƒ©ć‚¤ćƒćÆ态äæē•™äø­ć®ResultSetć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ē„”åŠ¹åŒ–ć—ć¦ć€ć‚·ć‚¹ćƒ†ćƒ ćƒ»ćƒŖć‚½ćƒ¼ć‚¹ć‚’č§£ę”¾ć—ć¾ć™ć€‚

  3. ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćÆ态ē„”åŠ¹åŒ–ć•ć‚ŒćŸResultSetć‹ć‚‰ćƒ‡ćƒ¼ć‚æ悒čŖ­ćæå‡ŗ恝恆ćØć—ć¾ć™ć€‚

  4. ćƒ‡ćƒ¼ć‚æ恌惗ćƒŖćƒ•ć‚§ćƒƒćƒć•ć‚Œć¦ć„ćŖć‹ć£ćŸå “åˆć€ć€Œćƒ•ć‚§ćƒƒćƒé †åŗē„”åŠ¹ć€ä¾‹å¤–ćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć¾ć™ć€‚ćƒ—ćƒŖćƒ•ć‚§ćƒƒćƒć•ć‚Œć‚‹č”Œę•°ćÆćƒ™ćƒ³ćƒ€ćƒ¼ć«ć‚ˆć£ć¦ē•°ćŖ悋恟悁态ē‰¹ć«1č”Œć¾ćŸćÆ2č”Œć§ć®ä½œę„­ć‚’č”Œć£ć¦ć„ć‚‹ć®ć§ć‚ć‚Œć°ć€ć“ć®å•é”ŒćŒē”Ÿć˜ć‚‹å “合ćØē”Ÿć˜ćŖć„å “åˆćŒć‚ć‚Šć¾ć™ć€‚

ć“ć®ä¾‹å¤–ćŒē™ŗē”Ÿć—ćŸå “合ćÆ态åæ…恚RowSetć‚’ć‚µćƒ¼ćƒćƒ¼å“ć§å–å¾—ć—ć€ćć®å¾Œćć‚Œć‚’ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«ć‚·ćƒŖć‚¢ćƒ©ć‚¤ć‚ŗć—ć¦ęˆ»ć™ć‚ˆć†ć«ć—ć¾ć™ć€‚

WebLogic JTSćƒ‰ćƒ©ć‚¤ćƒć®ä½æć„ę–¹(非ęŽØå„Ø)

JTS (Java Transaction Services)ćƒ‰ćƒ©ć‚¤ćƒćÆ态WebLogic Serverå†…ć§å®Ÿč”Œäø­ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‹ć‚‰ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚„ć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćøć®ć‚¢ć‚Æć‚»ć‚¹ć‚’ęä¾›ć™ć‚‹ć€ć‚µćƒ¼ćƒćƒ¼å“Java JDBC (Java Database Connectivity)ćƒ‰ćƒ©ć‚¤ćƒć§ć™ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćø恮ꎄē¶šćÆćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰č”Œć‚ć‚Œć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«ä»£ć‚ć£ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ē®”ē†ć‚·ć‚¹ćƒ†ćƒ (DBMS)恫ꎄē¶šć™ć‚‹ćŸć‚ć«WebLogic Serverå†…ć®JDBCćƒ‰ćƒ©ć‚¤ćƒćŒä½æē”Øć•ć‚Œć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰å–å¾—ć—ćŸęŽ„ē¶šćøć®ć‚¢ć‚Æć‚»ć‚¹ć«JTSćƒ‰ćƒ©ć‚¤ćƒćŒä½æē”Øć•ć‚Œć¾ć™ć€‚

WebLogic Server 恧ćÆć¾ćŸć€éžXA恮JDBCćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć™ć‚‹ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ć®ęŽ„ē¶šćŒć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć«å‚åŠ ć™ć‚‹éš›ć«ć€JTSćƒ‰ćƒ©ć‚¤ćƒćŒå†…éƒØēš„恫ä½æē”Øć•ć‚Œć¾ć™(ćƒ­ć‚®ćƒ³ć‚°ćƒ»ćƒ©ć‚¹ćƒˆćƒ»ćƒŖć‚½ćƒ¼ć‚¹ćŠć‚ˆć³2ćƒ•ć‚§ćƒ¼ć‚ŗćƒ»ć‚³ćƒŸćƒƒćƒˆć®ć‚ØćƒŸćƒ„ćƒ¬ćƒ¼ćƒˆ)ć€‚ć“ć®å‹•ä½œć«ć‚ˆć‚Šć€éžXA恮ćƒŖć‚½ćƒ¼ć‚¹ćŒXA悒ć‚ØćƒŸćƒ„ćƒ¬ćƒ¼ćƒˆć—ć€2ćƒ•ć‚§ćƒ¼ć‚ŗćƒ»ć‚³ćƒŸćƒƒćƒˆćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć«å‚åŠ ć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚ć€ŽOracle WebLogic Server JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ę§‹ęˆćØē®”ē†ć€ć®JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćƒ»ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć«é–¢ć™ć‚‹é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


ę³Øꄏ:

ćƒ­ć‚®ćƒ³ć‚°ćƒ»ćƒ©ć‚¹ćƒˆćƒ»ćƒŖć‚½ćƒ¼ć‚¹(LLR)态1ćƒ•ć‚§ćƒ¼ć‚ŗćƒ»ć‚³ćƒŸćƒƒćƒˆć€ć¾ćŸćÆ2ćƒ•ć‚§ćƒ¼ć‚ŗćƒ»ć‚³ćƒŸćƒƒćƒˆć®ć‚ØćƒŸćƒ„ćƒ¬ćƒ¼ćƒˆć‚’ä½æē”Ø恙悋ꎄē¶šć«å‚åŠ ć™ć‚‹ćØ恍态WebLogic Server JTSćƒ‰ćƒ©ć‚¤ćƒć§ćÆT3ćƒ—ćƒ­ćƒˆć‚³ćƒ«ć—ć‹ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć›ć‚“ć€‚


ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒé–‹å§‹ć•ć‚Œć‚‹ćØć€åŒć˜ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ęŽ„ē¶šć‚’å–å¾—ć™ć‚‹å®Ÿč”Œć‚¹ćƒ¬ćƒƒćƒ‰ć®ć™ć¹ć¦ć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ę“ä½œć§ć€ćć®ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®åŒć˜ęŽ„ē¶šćŒå…±ęœ‰ć•ć‚Œć¾ć™ć€‚ć“ć‚Œć‚‰ć®ę“ä½œćÆ态Enterprise JavaBean (EJB)悄Java Messaging Service (JMS)ć®ć‚ˆć†ćŖć‚µćƒ¼ćƒ“ć‚¹ć‚’é€šć˜ć¦ć€ć¾ćŸćÆęؙęŗ–JDBC呼å‡ŗ恗悒ä½æē”Ø恗恦ē›“ꎄSQL悒送äæ”恙悋恓ćØć«ć‚ˆć‚Šč”Œć†ć“ćØćŒć§ćć¾ć™ć€‚ć“ć‚Œć‚‰ć®ę“ä½œć™ć¹ć¦ćÆć€ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć§ćÆåŒć˜ęŽ„ē¶šć‚’å…±ęœ‰ć—ć€åŒć˜ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć«å‚åŠ ć—ć¾ć™ć€‚ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒć‚³ćƒŸćƒƒćƒˆć¾ćŸćÆćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æ恕悌悋ćØ态ꎄē¶šćÆćƒ—ćƒ¼ćƒ«ć«čæ”ć•ć‚Œć¾ć™ć€‚

Javać‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćÆJTSćƒ‰ćƒ©ć‚¤ćƒč‡Ŗčŗ«ć‚’ē™»éŒ²ć—ćŖć„å “åˆć‚‚ć‚ć‚Šć¾ć™ćŒć€Remote Method Invocation (RMI)ć‚’ä»‹ć—ć¦ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć«å‚åŠ ć™ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚ć‚ć‚‹ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć®1ć¤ć®ć‚¹ćƒ¬ćƒƒćƒ‰å†…ć§ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’é–‹å§‹ć—ć€ćć®ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«ćƒŖćƒ¢ćƒ¼ćƒˆRMIć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’å‘¼ć³å‡ŗ恕恛悋恓ćØćŒć§ćć¾ć™ć€‚ćƒŖćƒ¢ćƒ¼ćƒˆćƒ»ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć‚ˆć£ć¦å®Ÿč”Œć•ć‚Œć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ę“ä½œćÆć€ćć®ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆäøŠć§é–‹å§‹ć•ć‚ŒćŸćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć®äø€éƒØåˆ†ć«ćŖć‚Šć¾ć™ć€‚ćć®ćƒŖćƒ¢ćƒ¼ćƒˆćƒ»ć‚Ŗ惖ć‚ø悧ć‚ÆćƒˆćŒćć‚Œć‚’å‘¼ć³å‡ŗ恗恟ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«ęˆ»ć•ć‚ŒćŸć‚‰ć€ćć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ć‚³ćƒŸćƒƒćƒˆć¾ćŸćÆćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æć§ćć¾ć™ć€‚ćƒŖćƒ¢ćƒ¼ćƒˆćƒ»ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć‚ˆć£ć¦å®Ÿč”Œć•ć‚Œć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ę“ä½œćÆć€ć™ć¹ć¦åæ…ćšåŒäø€ć®ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ä½æē”Øć—ć¦ć€åŒäø€ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć®äø€éƒØ恫ćŖ悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

JTSćƒ‰ćƒ©ć‚¤ćƒćŠć‚ˆć³ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćŒć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć«å‚åŠ ć™ć‚‹ćŸć‚ć«ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćÆć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³å†…ć§conn = myDriver.connect("jdbc:weblogic:jts", props);ć‚’å‘¼ć³å‡ŗ恙åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒå®Œäŗ†ć™ć‚‹(ć‚³ćƒŸćƒƒćƒˆć¾ćŸćÆćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æ恕悌悋)ćØ态ꎄē¶šćÆćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć«čæ”ć•ć‚Œć¾ć™ć€‚åˆ„ć®ć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć§ęŽ„ē¶šć‚’ä½æē”Øć™ć‚‹å “åˆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćÆę–°ć—ć„ć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³å†…ć§å†åŗ¦conn = myDriver.connect("jdbc:weblogic:jts", props);ć‚’å‘¼ć³å‡ŗ恙åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

JTSćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć™ć‚‹ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćƒ»ć‚³ćƒ¼ćƒ‰

JTSćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Ø恙悋恫ćÆć€ć¾ćšē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć‚’ä½æē”Ø恗恦WebLogic Serverć«ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ä½œęˆć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

ę¬”ć«ć€ć‚µćƒ¼ćƒćƒ¼å“ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‹ć‚‰JTSćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ä½œęˆć—ć¦ä½æē”Øć™ć‚‹ę–¹ę³•ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚ć“ć“ć§ćÆ态怌myDataSource怍ćØć„ć†ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ä½æē”Øć—ć¾ć™ć€‚

  1. 仄äø‹ć®ć‚Æćƒ©ć‚¹ć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć—ć¾ć™ć€‚

    import javax.transaction.UserTransaction;
    import java.sql.*;
    import javax.naming.*;
    import java.util.*;
    import weblogic.jndi.*;
    
  2. UserTransactionć‚Æćƒ©ć‚¹ć‚’ä½æē”Øć—ć¦ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ē¢ŗē«‹ć—ć¾ć™ć€‚JNDI惄ćƒŖćƒ¼äøŠć§ć“恮ć‚Æćƒ©ć‚¹ć‚’ćƒ«ćƒƒć‚Æć‚¢ćƒƒćƒ—ć§ćć¾ć™ć€‚UserTransactionć‚Æćƒ©ć‚¹ćÆ态ē¾åœØć®å®Ÿč”Œć‚¹ćƒ¬ćƒƒćƒ‰äøŠć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’åˆ¶å¾”ć—ć¾ć™ć€‚ć“ć®ć‚Æćƒ©ć‚¹ćÆćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³č‡Ŗčŗ«ć‚’č”Ø恕ćŖ恄恓ćØ恫ę³Øę„ć—ć¦ćć ć•ć„ć€‚ć“ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć®å®Ÿéš›ć®ć‚³ćƒ³ćƒ†ć‚­ć‚¹ćƒˆćÆ态ē¾åœØć®å®Ÿč”Œć‚¹ćƒ¬ćƒƒćƒ‰ć«é–¢é€£ä»˜ć‘ć‚‰ć‚Œć¦ć„ć¾ć™ć€‚

    Context ctx = null;
    Hashtable env = new Hashtable();
     
    env.put(Context.INITIAL_CONTEXT_FACTORY,
             "weblogic.jndi.WLInitialContextFactory");
     
    // Parameters for the WebLogic Server. 
    // Substitute the correct hostname, port number 
    // user name, and password for your environment:
    env.put(Context.PROVIDER_URL, "t3://localhost:7001"); 
    env.put(Context.SECURITY_PRINCIPAL, "Fred");
    env.put(Context.SECURITY_CREDENTIALS, "secret");
     
    ctx = new InitialContext(env);
     
    UserTransaction tx = (UserTransaction)
      ctx.lookup("javax.transaction.UserTransaction");
    
  3. ē¾åœØć®ć‚¹ćƒ¬ćƒƒćƒ‰ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’é–‹å§‹ć—ć¾ć™ć€‚

    // Start the global transaction before getting a connection
    tx.begin();
    
  4. JTSćƒ‰ćƒ©ć‚¤ćƒć‚’ćƒ­ćƒ¼ćƒ‰ć—ć¾ć™ć€‚

    Driver myDriver = (Driver)
     Class.forName("weblogic.jdbc.jts.Driver").newInstance();
    
  5. ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ęŽ„ē¶šć‚’å–å¾—ć—ć¾ć™ć€‚

    Properties props = new Properties();
    props.put("connectionPoolID", "myDataSource");
    
    conn = myDriver.connect("jdbc:weblogic:jts", props); 
    
  6. ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ę“ä½œć‚’å®Ÿč”Œć—ć¾ć™ć€‚ć“ć‚Œć‚‰ć®ę“ä½œćÆ态EJB态JMSć€ćŠć‚ˆć³ęؙęŗ–JDBCꖇćŖć©ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’ä½æē”Øć™ć‚‹ć©ć®ć‚µćƒ¼ćƒ“ć‚¹ć§ć‚‚å®Ÿč”Œć§ćć¾ć™ć€‚ć“ć‚Œć‚‰ć®ę“ä½œć§ćÆ态åæ…恚JTSćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Ø恗恦态ꉋ順3ć§é–‹å§‹ć—ćŸćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćØåŒć˜ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć“ćØć«ć‚ˆć£ć¦ć€ć“ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć«å‚åŠ ć™ć‚‹ć‚ˆć†ć«ć—ć¾ć™ć€‚

    JTSćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Ø恙悋čæ½åŠ ć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ę“ä½œć§ć€ę‰‹é †5ć§ęŒ‡å®šć—ćŸćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćØćÆé•ć†ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ä½æē”Ø恙悋ćØć€ćć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ć‚³ćƒŸćƒƒćƒˆć¾ćŸćÆćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æ恗悈恆ćØ恗恟ćØćć«ä¾‹å¤–ćŒē™ŗē”Ÿć—ć¾ć™ć€‚

  7. ꎄē¶šć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’é–‰ć˜ć¾ć™ć€‚ęŽ„ē¶šć‚’é–‰ć˜ć¦ć‚‚ć€ćć‚Œć§ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒć‚³ćƒŸćƒƒćƒˆć•ć‚Œć‚‹ć‚ć‘ć§ć‚‚ć€ćć®ęŽ„ē¶šćŒćƒ—ćƒ¼ćƒ«ć«ęˆ»ć•ć‚Œć‚‹ć‚ć‘ć§ć‚‚ćŖ恄恓ćØ恫ę³Øę„ć—ć¦ćć ć•ć„ć€‚

    conn.close();
    
  8. ćć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ć‚³ćƒŸćƒƒćƒˆć¾ćŸćÆćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æ恙悋恓ćØć«ć‚ˆć‚Šć€ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’å®Œäŗ†ć—ć¾ć™ć€‚JTSćƒ‰ćƒ©ć‚¤ćƒćÆ态ē¾åœØć®ć‚¹ćƒ¬ćƒƒćƒ‰ć«å­˜åœØć™ć‚‹ć™ć¹ć¦ć®ęŽ„ē¶šć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ć™ć¹ć¦ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ć‚³ćƒŸćƒƒćƒˆć—ć€ęŽ„ē¶šć‚’ćƒ—ćƒ¼ćƒ«ć«čæ”ć—ć¾ć™ć€‚

    tx.commit();
     
    // or:
     
    tx.rollback();
    

WebLogic Poolćƒ‰ćƒ©ć‚¤ćƒć®ä½æć„ę–¹(非ęŽØå„Ø)

WebLogicćƒ—ćƒ¼ćƒ«ćƒ»ćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Ø恙悋ćØ态HTTPć‚µćƒ¼ćƒ–ćƒ¬ćƒƒćƒˆć¾ć½BžŸćÆEJBćŖć©ć®ć‚µćƒ¼ćƒćƒ¼å“ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‹ć‚‰ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’åˆ©ē”Øć§ćć¾ć™ć€‚ćƒ—ćƒ¼ćƒ«ćƒ»ćƒ‰ćƒ©ć‚¤ćƒć®ä½æē”Øę–¹ę³•ć®č©³ē“°ćÆ态怎Oracle WebLogic Server Webć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć€ć‚µćƒ¼ćƒ–ćƒ¬ćƒƒćƒˆć€JSP恮開ē™ŗć€ć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ć‚¢ć‚Æć‚»ć‚¹ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

PK"Ē½PK‰±-AOEBPS/rowsets.htm€’ WebLogic Server恫恊恑悋RowSet恮ä½æć„ę–¹

9 WebLogic Server恫恊恑悋RowSet恮ä½æć„ę–¹

恓恮ē« ć§ćÆ态WebLogic RowSet恮ē‰¹å¾“ćØä½æē”Øę–¹ę³•ć‚’čŖ¬ę˜Žć—ć¾ć™ć€‚

RowSet恫恤恄恦

WebLogic Server恫ćÆ态JSR-114ć®ä»•ę§˜ć«ęŗ–ę‹ ć—ćŸJava RowSetćŒå®Ÿč£…ć•ć‚Œć¦ć„ć¾ć™ć€‚ä»•ę§˜ć®č©³ē“°ćÆ态http://www.oracle.com/technetwork/java/javase/jdbc/index.htmlć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚WebLogic恮RowSetå®Ÿč£…ć«ćÆ态RowSetä»•ę§˜ć®ę‹”å¼µć‚‚å«ć¾ć‚Œć¦ć„ć¾ć™ć€‚ć“ć†ć—ćŸę‹”å¼µć‚’ä½æē”Ø恙悋ćØć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§RowSetć‚’ć‚ˆć‚Šęœ‰åŠ¹ć«ę“»ē”Øć§ćć¾ć™ć€‚

RowSetćÆJava ResultSetć®ę‹”å¼µć§ć™ć€‚ResultSetćØåŒę§˜ć€RowSet悂č”Øå½¢å¼ć®ćƒ‡ćƒ¼ć‚æ悒äæęŒć™ć‚‹Javać‚Ŗ惖ć‚ø悧ć‚Æ惈恧恙怂恟恠恗态RowSet恧ćÆResultSetę©Ÿčƒ½ć«å¤§å¹…ćŖęŸ”č»Ÿę€§ćŒåŠ ćˆć‚‰ć‚Œć¦ć„ć¦ć€ResultSetć®ęŒć¤åˆ¶é™ć®äø€éƒØ恌ē·©å’Œć•ć‚ŒćŸć‚Šå‰Šęø›ć•ć‚ŒćŸć‚Šć—ć¦ć„ć¾ć™ć€‚

RowSet恮ēخ锞

WebLogic Server恮RowSetå®Ÿč£…ć«ćÆ态仄äø‹ć®ć‚ˆć†ćŖēخ锞ćØćƒ¦ćƒ¼ćƒ†ć‚£ćƒŖćƒ†ć‚£ćŒć‚ć‚Šć¾ć™ć€‚

ęؙęŗ–恮RowSet :

WebLogic恮RowSetę‹”å¼µ :

RowSet悒ä½æē”Øć—ćŸćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°

WebLogic Server恮RowSetå®Ÿč£…ćÆć€ćƒ¦ćƒ¼ć‚¶ćƒ¼ćŒä»„äø‹ć®ę‰‹é †ć§RowSet悒ꉱ恆恓ćØć‚’ęƒ³å®šć—ć¦čØ­čØˆć•ć‚Œć¦ć„ć¾ć™ć€‚

  1. RowSetć‚’ä½œęˆć—ć¦ę§‹ęˆć—ć¾ć™(å•åˆć›ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć€ćć®ä»–ć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚’å®šē¾©ć—ć¾ć™)怂

  2. RowSetć«ćƒ‡ćƒ¼ć‚æć‚’å…„åŠ›ć—ć¾ć™(å•åˆć›ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’ęŒ‡å®šć—ć¦å•åˆć›ć‚’å®Ÿč”Œć—ć¾ć™)怂

  3. åæ…要恫åæœć˜ć¦RowSet惔ć‚æćƒ‡ćƒ¼ć‚æć‚’ęŒ‡å®šć—ć¾ć™ć€‚

  4. åæ…要恫åæœć˜ć¦RowSetć«ćƒ•ć‚£ćƒ«ć‚æć¾ćŸćÆć‚½ćƒ¼ć‚æćƒ¼ć‚’čØ­å®šć—ć¾ć™ć€‚

  5. RowSetå†…ć®ćƒ‡ćƒ¼ć‚æć‚’ę“ä½œć—ć¾ć™(ęŒæå…„ć€ę›“ę–°ć€å‰Šé™¤ć‚’č”Œć„ć¾ć™)怂

  6. RowSetć‹ć‚‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćøć®ćƒ‡ćƒ¼ć‚æå¤‰ę›“ć®åŒęœŸć‚’č”Œć„ć¾ć™ć€‚

å¤‰ę›“ć‚’åŒęœŸć—ćŸå¾Œć«ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®čØ­čØˆć«åæœć˜ć¦ę‰‹é †2ć¾ćŸćÆꉋ順3恋悉ē¹°čæ”ć—å‡¦ē†ć‚’č”Œćˆć¾ć™ć€‚ć€Œćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³å®Œäŗ†å¾Œć®WebLogic RowSetć®å†åˆ©ē”Øć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

WebLogic恮RowSetå®Ÿč£…ć«ćÆćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ćƒ•ćƒ¬ćƒ¼ćƒ ćƒÆćƒ¼ć‚ÆćŒć‚ć‚Šć€ć“ć‚Œć«ć‚ˆć£ć¦RowSetć‚Ŗ惖ć‚ø悧ć‚Æ惈恌ē•°åøøćŖēŠ¶ę…‹ć«ćŖ悉ćŖć„ć‚ˆć†ć«ć—ć¦ć„ć¾ć™ć€‚WebLogic Server恧ćÆ态äøŠčØ˜ć®å‡¦ē†ę®µéšŽć«åæœć˜ć¦ć€å†…éƒØēš„恫RowSet恫åÆ¾ć—ćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚ø恌čØ­å®šć•ć‚Œć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æęå¤±ć®ćƒŖć‚¹ć‚Æ悒ęø›ć‚‰ć™ćŸć‚ć€ćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚ø恫åæœć˜ć¦RowSetć«å®Ÿę–½ć§ćć‚‹ę“ä½œćŒåˆ¶é™ć•ć‚Œć¾ć™ć€‚ćŸćØ恈恰RowSetć®ć‚¹ćƒ†ćƒ¼ć‚ø恌怌Updating怍(ꛓꖰ)ć®å “åˆć€RowSet恫åÆ¾ć—ć¦å‘¼ć³å‡ŗ恛悋恮ćÆ态updateXXX()ćƒ”ć‚½ćƒƒćƒ‰(updateString()态updateInt()ćŖ恩)恮ćæć§ć™ć€‚ć“ć®åˆ¶é™ćÆ态updateRow()ć‚’å‘¼ć³å‡ŗć—ć¦ę›“ę–°ć®ćƒ•ć‚§ćƒ¼ć‚ŗćŒå®Œäŗ†ć™ć‚‹ć¾ć§é©ē”Øć•ć‚Œć¾ć™ć€‚

é‡č¦ćŖę³Øꄏäŗ‹é …悒仄äø‹ć«ē¤ŗć—ć¾ć™ć€‚

  • äæē•™äø­ć®å¤‰ę›“ćŒć‚ć‚‹å “åˆć€RowSet恫åÆ¾ć—ć¦å†å…„åŠ›ć€ćƒ•ć‚£ćƒ«ć‚æć€ć‚½ćƒ¼ćƒˆćÆč”Œćˆć¾ć›ć‚“ć€‚ćƒ‡ćƒ¼ć‚æć®å¤‰ę›“ćŒäøęø¬ć®äŗ‹ę…‹ć«ć‚ˆć£ć¦å¤±ć‚ć‚Œć‚‹ć“ćØć‚’é˜²ććŸć‚ć€RowSetć®ćƒ‡ćƒ¼ć‚æć‚’å¤‰ę›“ć—ć¦ć‚‚ćć®å¤‰ę›“ćŒćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć•ć‚Œć¦ć„ćŖć„å “åˆćÆRowSet恫åÆ¾ć—ć¦ć“ć‚Œć‚‰ć®ę“ä½œćŒć§ććŖć„ć‚ˆć†ć«ćŖć£ć¦ć„ć¾ć™ć€‚

  • ć‚«ćƒ¼ć‚½ćƒ«ćŒęš—é»™ēš„恫ē§»å‹•ć™ć‚‹ć“ćØćÆć‚ć‚Šć¾ć›ć‚“ć€‚č”Œć‹ć‚‰č”Œćø꘎ē¤ŗēš„ć«ć‚«ćƒ¼ć‚½ćƒ«ć‚’ē§»å‹•ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

  • RowSetć®ćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚øćÆ内éƒØēš„ćŖćƒ—ćƒ­ć‚»ć‚¹ć§ć™ć€‚ćƒ©ć‚¤ćƒ•ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚øć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćŸć‚ć®ćƒ‘ćƒ–ćƒŖ惃ć‚ÆAPIćÆć‚ć‚Šć¾ć›ć‚“ć€‚ćƒ©ć‚¤ćƒ•ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚øć‚’ćƒ¦ćƒ¼ć‚¶ćƒ¼ćŒčØ­å®šć™ć‚‹ć“ćØćÆć§ćć¾ć›ć‚“ć€‚acceptChanges()ć¾ćŸćÆrestoreOriginal()ć‚’å‘¼ć³å‡ŗ恙ćØRowSetć®ćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚øćÆēµ‚äŗ†ć—ć€å†ć³å‡¦ē†ć‚’é–‹å§‹ć§ćć¾ć™ć€‚


    ę³Øꄏ:

    ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆå“ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§RowSet悒ä½æē”Ø恙悋際ćÆć€ć‚µćƒ¼ćƒćƒ¼ćØć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć®äø”ę–¹ć®CLASSPATHć«ć€åŒäø€ć®JDBCćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¹ć‚’ęŒ‡å®šć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚Æćƒ©ć‚¹ćŒäø€č‡“恗恦恄ćŖ恄ćØ态java.rmi.UnmarshalExceptionä¾‹å¤–ćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚


RowSetć®ä½œęˆę™‚ć‹ć‚‰ćƒ‡ćƒ¼ć‚æå¤‰ę›“ćŒćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć•ć‚Œć‚‹ć¾ć§ć®RowSetć®ćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚øć®å®Ÿä¾‹ć«ć¤ć„ć¦ćÆć€ä¾‹9-1ć®ć‚³ćƒ”ćƒ³ćƒˆć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

CachedRowSet

仄äø‹ć®ēÆ€ć§ćÆ态WebLogic Server恫恊恑悋ęؙęŗ–恮CachedRowSet恮ä½æć„ę–¹ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

ć¾ćŸć€ęؙęŗ–恮CachedRowSetć‚Ŗ惖ć‚ø悧ć‚Æ惈恮WebLogicę‹”å¼µć®ä½æē”Øę–¹ę³•ć«ć¤ć„ć¦ćÆ态怌WLCachedRowSetć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

ē‰¹ę€§

CachedRowSetćÆꎄē¶šć•ć‚Œć¦ć„ćŖ恄ResultSetć‚Ŗ惖ć‚ø悧ć‚Æ惈恧恙怂CachedRowSetć®ćƒ‡ćƒ¼ć‚æćÆćƒ”ćƒ¢ćƒŖćƒ¼ć«ę ¼ē“ć•ć‚Œć¾ć™ć€‚WebLogic Serverå®Ÿč£…ć®CachedRowSet恫ćÆ仄äø‹ć®ē‰¹ę€§ćŒć‚ć‚Šć¾ć™ć€‚

  • ćƒ‡ćƒ¼ć‚æ恮ęŒæå…„ć€ę›“ę–°ć€å‰Šé™¤ć«ä½æē”Øć§ćć¾ć™ć€‚

  • ć‚·ćƒŖć‚¢ćƒ©ć‚¤ć‚ŗåÆčƒ½ćŖćŸć‚ć€ćƒ¢ćƒć‚¤ćƒ«ę©Ÿå™ØćŖć©ć®ę§˜ć€…ćŖć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚³ćƒ³ćƒćƒ¼ćƒćƒ³ćƒˆć«ęø”恙恓ćØćŒć§ćć¾ć™ć€‚

  • ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³å‡¦ē†ć«åƾåæœć—ć¦ć„ć‚‹ćŸć‚RowSetć‚’å†åˆ©ē”Øć§ćć¾ć™ć€‚ć€Œćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³å®Œäŗ†å¾Œć®WebLogic RowSetć®å†åˆ©ē”Øć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

  • RowSetć§ć®ćƒ‡ćƒ¼ć‚æå¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć™ć‚‹ćŸć‚ć«ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§åˆ¶å¾”ćŒä½æē”Øć•ć‚Œć¾ć™ć€‚

  • SyncProviderä¾‹å¤–ć‹ć‚‰å¾—ć‚‰ć‚Œć‚‹SyncResolverć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Ø恗恦态RowSetć§ć®ćƒ‡ćƒ¼ć‚æå¤‰ę›“ćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹é–“ć®ē«¶åˆć‚’č§£ę±ŗć—ć¾ć™ć€‚ć€ŒSyncResolver悒ä½æē”Ø恗恟SyncProviderExceptionć®å‡¦ē†ć€ć‚’参ē…§ć—ć¦ćć ć•ć„ć€‚

CachedRowSet恫ē‰¹ęœ‰ć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°äøŠć®č€ƒę…®äŗ‹é …ćØ制限

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®čØ­čØˆę™‚ć«ćÆ态ꬔ恮恓ćØć‚’č€ƒę…®ć™ć‚‹ć‚ˆć†ć«ć—ć¾ć™ć€‚

  • RowSetć®å•åˆć›ēµęžœćÆć™ć¹ć¦ćƒ”ćƒ¢ćƒŖćƒ¼ć«ę ¼ē“ć•ć‚Œć‚‹

  • ćƒ‡ćƒ¼ć‚æ恮ē«¶åˆ

RowSetć®å•åˆć›ēµęžœćÆć™ć¹ć¦ćƒ”ćƒ¢ćƒŖćƒ¼ć«ę ¼ē“ć•ć‚Œć‚‹

CachedRowSet恧ćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćø恮ꎄē¶šćŒäæęŒć•ć‚ŒćŖć„ć®ć§ć€ć™ć¹ć¦ć®å•åˆć›ć®ēµęžœćÆåæ…ćšćƒ”ćƒ¢ćƒŖćƒ¼ć«ę ¼ē“ć•ć‚Œć¾ć™ć€‚å•åˆć›ć®ēµęžœćŒéžåøøć«å¤§ćć„ćØć€ćƒ”ćƒ¢ćƒŖćƒ¼äøč¶³ć‚Øćƒ©ćƒ¼ć«ć‚ˆć‚Šćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćŒä½Žäø‹ć™ć‚‹ć“ćØćŒć‚ć‚Šć¾ć™ć€‚å¤§ććŖćƒ‡ćƒ¼ć‚æćƒ»ć‚»ćƒƒćƒˆć®å “åˆć€ResultSet悒ä½æē”Øć™ć‚‹ę–¹ćŒé©ć—ć¦ć„ć‚‹ć“ćØć‚‚ć‚ć‚Šć¾ć™ć€‚ResultSet恧ćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćø恮ꎄē¶šćŒäæęŒć•ć‚Œć‚‹ćŸć‚ć€å•åˆć›ēµęžœć®äø€éƒØć‚’ćƒ”ćƒ¢ćƒŖćƒ¼ć«äæęŒć—恦恋悉åæ…要恫åæœć˜ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ęˆ»ć‚Šć€ć•ć‚‰ć«č”Œć‚’å–å¾—ć§ćć‚‹ćŸć‚ć§ć™ć€‚

ćƒ‡ćƒ¼ć‚æ恮ē«¶åˆ

CachedRowSetćÆ态RowSetćøć®å…„åŠ›ć‹ć‚‰RowSetå†…ć®ćƒ‡ćƒ¼ć‚æå¤‰ę›“ćŒćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć•ć‚Œć‚‹ć¾ć§ć®é–“ć«ć€åˆ„ć®ćƒ—ćƒ­ć‚»ć‚¹ć§ę›“ę–°ć•ć‚Œć‚‹ć“ćØćŒć‚ć¾ć‚ŠćŖ恄悈恆ćŖćƒ‡ćƒ¼ć‚æ恫ä½æē”Øć™ć‚‹ć®ćŒć‚‚ć£ćØć‚‚é©ć—ć¦ć„ć¾ć™ć€‚ć“ć®ęœŸé–“ć«ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćŒå¤‰ę›“ć•ć‚Œć‚‹ćØćƒ‡ćƒ¼ć‚æ恮ē«¶åˆćŒē™ŗē”Ÿć—ć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æ恮ē«¶åˆć‚’ę¤œå‡ŗć—ć¦å‡¦ē†ć™ć‚‹ę–¹ę³•ć«ć¤ć„恦ćÆ态怌SyncResolver悒ä½æē”Ø恗恟SyncProviderExceptionć®å‡¦ē†ć€ć‚’参ē…§ć—ć¦ćć ć•ć„ć€‚

ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

例9-1恫CachedRowSet恮åŸŗęœ¬ēš„ćŖćƒÆćƒ¼ć‚Æćƒ•ćƒ­ćƒ¼ć‚’ē¤ŗć—ć¾ć™ć€‚ć“ć®ä¾‹ć§ćÆ态äø»č¦ćŖå„ę“ä½œćØåƾåæœć™ć‚‹RowSetć®ćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚øć«ć¤ć„ć¦ć‚³ćƒ”ćƒ³ćƒˆć‚’ä½æć£ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚ć“ć®ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć®å¾Œć§ć€ć‚µćƒ³ćƒ—ćƒ«ć®äø»č¦ćŖå„ć‚»ć‚Æć‚·ćƒ§ćƒ³ć«ć¤ć„ć¦ć•ć‚‰ć«č©³ē“°ć«čŖ¬ę˜Žć—ć¾ć™ć€‚

例9-1 CachedRowSetć®ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

import javax.sql.rowset.CachedRowSet;
import weblogic.jdbc.rowset.RowSetFactory; 
public class CachedRowSetDemo {
public static void main (String[] args) {
//DESIGNING lifecycle stage - Create the rowset and set properties
  try {
    //Create a RowSetFactory instance.
    RowSetFactory rsfact = RowSetFactory.newInstance();
    CachedRowSet rs = rsfact.newCachedRowSet();
    //Set database access through a DataSource. 
    rs.setDataSourceName(examples-dataSource-demoPool);
    //See  Database Connection Options for more options.
    //Set query command
    rs.setCommand("SELECT ID, FIRST_NAME, MIDDLE_NAME, LAST_NAME,
    PHONE, EMAIL FROM PHYSICIAN WHERE ID>?");
   //CONFIGURE QUERY lifecycle operation
    rs.setInt(1, 0); 
    //POPULATING lifecycle stage - Execute the command to populate the rowset
    rs.execute();
   }
   //CONFIGURING METADATA - Populate first, then set MetaData, 
   //including KeyColumns
    rs.setKeyColumns(new int[] { 1 });
    while (rs.next ()) //NAVIGATING lifecycle stage
      {
      System.out.println ("ID: " +rs.getInt (1));
      System.out.println ("FIRST_NAME: " +rs.getString (2));
      System.out.println ("MIDDLE_NAME: " +rs.getString (3));
      System.out.println ("LAST_NAME: " +rs.getString (4));
      System.out.println ("PHONE: " +rs.getString (5));
      System.out.println ("EMAIL: " +rs.getString (6));
      }
   }
//Working with data
//Delete rows in the rowset
  try {
  //MANIPULATING lifecycle stage - navigate to a row 
  //(manually moving the cursor)
  rs.last();
  rs.deleteRow();
  //Note that the database is not updated yet.
  }  
//Update a row in the rowset
  try {
  //MANIPULATING lifecycle stage - navigate to a row
  //(manually moving the cursor)
  rs.first();
  //UPDATING lifecycle stage - call an update() method
  rs.updateString(4, "Francis");
  //MANIPULATING lifecycle stage - finish update
  rs.updateRow();
  //Note that the database is not updated yet.
  }  
//INSERTING lifecycle stage - Insert rows in the rowset
  try {
    rs.moveToInsertRow();
    rs.updateInt(1, 104);
    rs.updateString("FIRST_NAME", "Yuri");
    rs.updateString("MIDDLE_NAME", "M");
    rs.updateString("LAST_NAME", "Zhivago");
    rs.updateString("PHONE", "1234567812");
    rs.updateString("EMAIL", "Yuri@poet.com");
    rs.insertRow(); //"Finish Update" action; 
    //MANIPULATING lifecycle stage - navigate to a row
    rs.moveToCurrentRow();
    //Note that the database is not updated yet.
  }  
//Send all changes (delete, update, and insert) to the database.
//DESIGNING or POPULATING lifecycle stage - after synchronizing changes
//with the database, lifecycle stage depends on other environment settings. 
//See  Reusing a WebLogic RowSet After Completing a Transaction.
  try {
    rs.acceptChanges();
    rs.close();
   }
}

CachedRowSet恮ć‚Æćƒ©ć‚¹ćØć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®ć‚¤ćƒ³ćƒćƒ¼ćƒˆ

ęؙęŗ–恮RowSet悒ä½æē”Ø恙悋恫ćÆ态ꬔ恮ć‚Æćƒ©ć‚¹ć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

javax.sql.rowset.CachedRowSet;
weblogic.jdbc.rowset.RowSetFactory;

CachedRowSetć®ä½œęˆ

RowSetćÆćƒ•ć‚”ć‚Æ惈ćƒŖćƒ»ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‹ć‚‰ä½œęˆć•ć‚Œć¾ć™ć€‚WebLogic Server恧RowSetć‚’ä½œęˆć™ć‚‹ć«ćÆ态äø»ć«ä»„äø‹ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. RowSetFactoryć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć‚’ä½œęˆć—ć¾ć™ć€‚ć“ć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćÆć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ä½æē”Ø恙悋RowSetć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć™ć‚‹ćŸć‚ć®ćƒ•ć‚”ć‚Æ惈ćƒŖćØć—ć¦ę©Ÿčƒ½ć—ć¾ć™ć€‚RowSetFactoryć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚’ęŒ‡å®šć™ć‚‹ćØć€åŒć˜ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’ä½æē”Ø恙悋複ꕰ恮RowSetć‚’å°‘ćŖć„ć‚³ćƒ¼ćƒ‰č”Œć§ä½œęˆć§ćć¾ć™ć€‚

    RowSetFactory rsfact = RowSetFactory.newInstance();
    
  2. WLCachedRowSetć‚’ä½œęˆć—ć¦javax.sql.rowset.CachedRowSetć‚Ŗ惖ć‚ø悧ć‚Æćƒˆåž‹ć«ć‚­ćƒ£ć‚¹ćƒˆć—ć¾ć™ć€‚ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć§ćÆWebLogic newCachedRowSet() RowSetFactoryćƒ”ć‚½ćƒƒćƒ‰ć§WLCachedRowSetć‚Ŗ惖ć‚ø悧ć‚ÆćƒˆćŒä½œęˆć•ć‚Œć¾ć™ć€‚ć“ć®ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ćć®ć¾ć¾ä½æē”Ø恙悋恓ćØć‚‚ć§ćć¾ć™ćŒć€ęؙęŗ–恮CachedRowSetć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Øć™ć‚‹å “åˆćÆ态ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒CachedRowSetćØć—ć¦ć‚­ćƒ£ć‚¹ćƒˆć§ćć¾ć™ć€‚

    CachedRowSet rs = rsfact.newCachedRowSet();
    

CachedRowSetć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć®čح定

RowSet恫ćÆć€åŒę™‚å®Ÿč”Œę€§ć®ēØ®é”žć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®åå‰ć€ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³åˆ†é›¢ćƒ¬ćƒ™ćƒ«ćŖć©ę•°å¤šćć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ćŒć‚ć‚Šć¾ć™ć€‚ć“ć‚Œć‚‰ć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚’čØ­å®šć—ć¦RowSetć®å‹•ä½œć‚’ę±ŗå®šć§ćć¾ć™ć€‚RowSet恮ē‰¹å®šć®ē”Ø途恫åæœć˜ć¦åæ…要ćŖćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć®ćæ悒čØ­å®šć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚åˆ©ē”ØåÆčƒ½ćŖćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć®č©³ē“°ćÆ态http://download.oracle.com/javase/6/docs/api/javax/sql/rowset/BaseRowSet.html恮javax.sql.rowset.BaseRowSetć‚Æćƒ©ć‚¹ć®Javadocć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³

恻ćØć‚“ć©ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ć®ćƒ‡ćƒ¼ć‚æ悒RowSetć«å…„åŠ›ć—ć¾ć™ć€‚RowSetćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØ恮ꎄē¶šćÆ态仄äø‹ć®ć„ćšć‚Œć‹ć®ę–¹ę³•ć§čØ­å®šć—ć¾ć™ć€‚

  • ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ä½æē”Ø恗恦č‡Ŗ動ēš„恫ꎄē¶šć™ć‚‹ - setDataSourceName()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®JNDIåć‚’ęŒ‡å®šć§ćć¾ć™ć€‚execute()ćŠć‚ˆć³acceptChanges()ć‚’å‘¼ć³å‡ŗ恙ćØ态RowSetć§ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šćŒå–å¾—ć•ć‚Œć€ćć‚ŒćŒä½æē”Øć•ć‚Œć¦ć€ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ęŽ„ē¶šć®ćƒ—ćƒ¼ćƒ«ć«ęˆ»ć•ć‚Œć¾ć™ć€‚ć“ć‚ŒćÆ态ęŽØå„Øć•ć‚Œć‚‹ę–¹ę³•ć§ć™ć€‚

    rs.setDataSourceName(examples-dataSource-demoPool);
    
  • ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’ę‰‹å‹•ć§å–å¾—ć™ć‚‹ - RowSet恧åæ…要恫ćŖć‚‹å‰ć«ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć—ć¦ć‹ć‚‰ć€ęŽ„ē¶šć‚Ŗ惖ć‚ø悧ć‚Æ惈悒execute()ćƒ”ć‚½ćƒƒćƒ‰ćŠć‚ˆć³acceptChanges()ćƒ”ć‚½ćƒƒćƒ‰ć®ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æćØ恗恦ęø”ć—ć¾ć™ć€‚åæ…要恫åæœć˜ć¦ęŽ„ē¶šć‚’é–‰ć˜ć‚‹åæ…č¦ć‚‚ć‚ć‚Šć¾ć™ć€‚

    //Lookup DataSource and get a connection
    ctx = new InitialContext(ht);
    javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup ("myDS");
    conn = ds.getConnection();
    
    //Pass the connection to the rowset
    rs.execute(conn); 
    

    JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®č©³ē“°ć«ć¤ć„恦ćÆ态怌DataSourceć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‹ć‚‰ć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®å–å¾—ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

  • JDBCćƒ‰ćƒ©ć‚¤ćƒć‚’ćƒ­ćƒ¼ćƒ‰ć—ć¦ē›“ꎄēš„恫ꎄē¶šć™ć‚‹ - JDBCćƒ‰ćƒ©ć‚¤ćƒć‚’ćƒ­ćƒ¼ćƒ‰ć—ć¦é©åˆ‡ćŖćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚’čØ­å®šć™ć‚‹ćØ态RowSet恧ćÆexecute()ćŠć‚ˆć³acceptChanges()ć‚’å‘¼ć³å‡ŗ恗恟ćØćć«ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šćŒä½œęˆć•ć‚Œć¾ć™ć€‚RowSet恧ćÆꎄē¶šć‚’ä½æē”Ø恗ēµ‚ćˆć‚‹ćØć™ćć«ćć®ęŽ„ē¶šćŒé–‰ć˜ć‚‰ć‚Œć¾ć™ć€‚RowSet恧ćÆexecute()ćƒ”ć‚½ćƒƒćƒ‰å‘¼å‡ŗ恗ćØacceptChanges()ćƒ”ć‚½ćƒƒćƒ‰å‘¼å‡ŗ恗恮間态ꎄē¶šćÆäæęŒć•ć‚Œć¾ć›ć‚“怂

    Class.forName("org.apache.derby.jdbc.ClientDriver");
    rs.setUrl("jdbc:derby://localhost:1527/demo");
    rs.setUsername("examples");
    rs.setPassword("examples");
    rs.execute();
    
  • RowSetFactory恮ꎄē¶šć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚’čØ­å®šć™ć‚‹ - RowSetFactoryć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚’čØ­å®šć™ć‚‹ćØ态RowSetFactoryć‹ć‚‰ä½œęˆć•ć‚ŒćŸć™ć¹ć¦ć®RowSetć§ćć®ęŽ„ē¶šć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ćŒē¶™ę‰æć•ć‚Œć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ćƒ«ćƒƒć‚Æć‚¢ćƒƒćƒ—ć—ć¦ć‹ć‚‰setDataSource()ćƒ”ć‚½ćƒƒćƒ‰ć§RowSetFactoryć®ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć‚’čØ­å®šć™ć‚‹ć®ćŒć€ęŽØå„Øć•ć‚Œć‚‹ę–¹ę³•ć§ć™ć€‚

    //Lookup DataSource and get a connection
    ctx = new InitialContext(ht);
    javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup ("myDS");
    
    //Set the datasource property on the RowSetFactory
    rsfact.setDataSource(ds);
    

CachedRowSetćøć®å…„åŠ›

RowSetćø恮Populating(兄力)ćØćÆ态RowSetć«ćƒ‡ćƒ¼ć‚æć®č”Œć‚’ę ¼ē“ć™ć‚‹ä½œę„­ć®ć“ćØć‚’ć„ć„ć¾ć™ć€‚é€šåøøć€ć“ć®ćƒ‡ćƒ¼ć‚æć®å–å¾—å…ƒćÆćƒŖćƒ¬ćƒ¼ć‚·ćƒ§ćƒŠćƒ«ćƒ»ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ć™ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ć®ćƒ‡ćƒ¼ć‚æćÆ态仄äø‹ć®ć„ćšć‚Œć‹ć®ę–¹ę³•ć§RowSetć«å…„åŠ›ć§ćć¾ć™ć€‚

  • setCommand()ćƒ”ć‚½ćƒƒćƒ‰ć§SQLć‚³ćƒžćƒ³ćƒ‰ć‚’čØ­å®šć—ć¦ć‹ć‚‰ć€execute()ćƒ”ć‚½ćƒƒćƒ‰ć§ćć®ć‚³ćƒžćƒ³ćƒ‰ć‚’å®Ÿč”Œć—ć¾ć™ć€‚

    rs.setCommand("SELECT ID, FIRST_NAME, MIDDLE_NAME, LAST_NAME,
        PHONE, EMAIL FROM PHYSICIAN");
    rs.execute();
    
  • ę—¢å­˜ć®ēµęžœć‚»ćƒƒćƒˆć‹ć‚‰populate()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¦å…„åŠ›ć—ć¾ć™ć€‚

    rs.populate(resultSet);
    

    ę³Øꄏ:

    ResultSet.TYPE_FORWARD_ONLY恮ēµęžœć‚»ćƒƒćƒˆć‚’ä½æē”Øć—ć¦ć„ć‚‹å “åˆć€ä»„äø‹ć®ę”ä»¶ć§č”Œć‚»ćƒƒćƒˆć«å…„åŠ›ć—ć‚ˆć†ćØ恙悋ćØSQLExceptionćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć¾ć™ć€‚

    • ēµęžœć‚»ćƒƒćƒˆć®ć‚«ćƒ¼ć‚½ćƒ«ćŒč”Œ1ć‚’č¶…ćˆć‚‹ä½ē½®ć«ć‚ć‚‹ēŠ¶ę…‹ć§CachedRowset.populate(ResultSet rs)ć‚’å‘¼ć³å‡ŗć—ćŸå “åˆć€‚

    • newPositionć®å€¤ćŒēµęžœć‚»ćƒƒćƒˆć®ē¾åœØć®ć‚«ćƒ¼ć‚½ćƒ«ä½ē½®ć‚ˆć‚Šå°ć•ć„ēŠ¶ę…‹ć§CachedRowset.populate(ResultSet rs, int newPosition)ć‚’å‘¼ć³å‡ŗć—ćŸå “åˆć€‚


CachedRowSetćø恮惔ć‚æćƒ‡ćƒ¼ć‚æ恮čح定

RowSetć®ćƒ‡ćƒ¼ć‚æå¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć™ć‚‹ćŸć‚ć«ć€RowSet恫惔ć‚æćƒ‡ćƒ¼ć‚æ悒čØ­å®šć™ć‚‹ć“ćØ恌åæ…要ćŖå “åˆć‚‚ć‚ć‚Šć¾ć™ć€‚č©³ē“°ć«ć¤ć„恦ćÆ态怌RowSet恫åÆ¾ć™ć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ę›“ę–°ē”Ø惔ć‚æćƒ‡ćƒ¼ć‚æ恮čØ­å®šć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

CachedRowSetć®ćƒ‡ćƒ¼ć‚æć®ę“ä½œ

ć‚­ćƒ£ćƒƒć‚·ćƒ„ć•ć‚ŒćŸRowSet恫äø€é€£ć®ćƒ‡ćƒ¼ć‚æč”Œć‚’å…„åŠ›ć—ćŸå¾Œć«ćÆ态ēµęžœć‚»ćƒƒćƒˆć®ćƒ‡ćƒ¼ć‚æ悒ꉱ恆恮ćØć»ć¼åŒć˜ę–¹ę³•ć§ćć®ć‚­ćƒ£ćƒƒć‚·ćƒ„ęøˆćæć®ćƒ‡ćƒ¼ć‚æć‚’å–ć‚Šę‰±ćˆć¾ć™ć€‚ćŸć ć—ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«åÆ¾ć—ć¦å¤‰ę›“ć‚’č”Œć†å‰ć«ćÆ态acceptChanges()悒꘎ē¤ŗēš„ć«å‘¼ć³å‡ŗ恙åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚


ę³Øꄏ:

RowSetć®åˆ—åć‚„č”Øåć«åŒŗåˆ‡ć‚Šč­˜åˆ„å­ćÆä½æē”Øć§ćć¾ć›ć‚“ć€‚SQLꖇ恮äø­ć§ćÆ态åŒŗåˆ‡ć‚Šč­˜åˆ„å­ćÆäŗŒé‡å¼•ē”Øē¬¦ć§å›²ć‚€åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚åŒŗåˆ‡ć‚Šč­˜åˆ„å­ć«ćÆ态SQLäŗˆē“„čŖž(USER悄DATEćŖ恩)恫ćŖć£ć¦ć„ć‚‹ć‚‚ć®ć‚„ć€č­˜åˆ„å­ć§ćÆćŖć„åå‰ć«ćŖć£ć¦ć„ć‚‹ć‚‚ć®ćŒć‚ć‚Šć¾ć™ć€‚ęœ‰åŠ¹ćŖč­˜åˆ„å­ćÆåæ…ćšę–‡å­—ć§å§‹ć¾ć‚Šć€ę–‡å­—ć€ę•°å­—ć€ćŠć‚ˆć³ć‚¢ćƒ³ćƒ€ćƒ¼ć‚¹ć‚³ć‚¢ć®ćæ悒ä½æē”Øć§ćć¾ć™ć€‚


RowSetć®č”Œć‹ć‚‰ćƒ‡ćƒ¼ć‚æć‚’å–å¾—ć™ć‚‹

RowSetć‹ć‚‰ćƒ‡ćƒ¼ć‚æć‚’å–å¾—ć™ć‚‹ć«ćÆ态ēµęžœć‚»ćƒƒćƒˆć®å “合ćØåŒę§˜ć«getXXXćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¾ć™ć€‚ä¾‹:

while (rs.next ())
   {
   int id = rs.getInt (1);
   String fname = rs.getString ("FIRST_NAME");
   String mname = rs.getString ("MIDDLE_NAME");
   String lname = rs.getString ("LAST_NAME"));
   }

RowSetć®č”Œć‚’ę›“ę–°ć™ć‚‹

通åøøć€ćƒ‡ćƒ¼ć‚æ恮ꛓꖰćÆ仄äø‹ć®ę‰‹é †ć§č”Œć„ć¾ć™ć€‚

  1. č”Œć¾ćŸćÆęŒæå…„č”Œć«ē§»å‹•ć—ć¾ć™ć€‚

  2. updateXXXćƒ”ć‚½ćƒƒćƒ‰ć§č”Œć‚’å¤‰ę›“ć—ć¾ć™ć€‚

  3. updateRow()ć¾ćŸćÆinsertRow()ć§ę“ä½œć‚’å®Œäŗ†ć—ć¾ć™ć€‚

ę“ä½œć‚’å®Œäŗ†ć—ć¦ć‚‚å¤‰ę›“ćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć•ć‚ŒćŖ恄恓ćØ恫ę³Øę„ć—ć¾ć™ć€‚å¤‰ę›“ćÆRowSet恫åÆ¾ć—ć¦ć®ćæč”Œć‚ć‚Œć¾ć™ć€‚acceptChanges()ć‚’å‘¼ć³å‡ŗć—ć¦ć€ę˜Žē¤ŗēš„ć«å¤‰ę›“ć‚’åŒęœŸć•ć›ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚č©³ē“°ć«ć¤ć„恦ćÆ态äø‹čØ˜ć®ć€ŒRowSetć®å¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć™ć‚‹ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

RowSetć‚’ę“ä½œć™ć‚‹éš›ć€WebLogic Server恧ćÆ内éƒØēš„ć«å„ę“ä½œć®å¾Œć§RowSetć«ćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚ø恌čØ­å®šć•ć‚Œć€ćć®å¾ŒćÆē¾åœØć®ćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚ø恫åŸŗ恄恄恦RowSet恫åÆ¾ć™ć‚‹ä»„é™ć®ę“ä½œćŒåˆ¶é™ć•ć‚Œć¾ć™ć€‚updatećƒ”ć‚½ćƒƒćƒ‰ē¾¤ć§č”Œć®å¤‰ę›“ć‚’é–‹å§‹ć—ćŸć‚‰ć€åæ…恚updateRow()ć¾ćŸćÆinsertRow()ć§ę“ä½œć‚’å®Œäŗ†ć—ć¾ć™ć€‚å®Œäŗ†ć—恦ćÆć˜ć‚ć¦ć€åˆ„ć®č”Œć®ę“ä½œ(åˆ„ć®č”Œćøć®ć‚«ćƒ¼ć‚½ćƒ«ć®ē§»å‹•ć‚’å«ć‚€)ćŒć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚RowSetć®ćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚øćØć€å„ć‚¹ćƒ†ćƒ¼ć‚ø恧čرåÆć•ć‚Œć‚‹ę“ä½œć®č©³ē“°ć«ć¤ć„恦ćÆ态怌RowSet悒ä½æē”Øć—ćŸćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

č”Œć‚’ę›“ę–°ć™ć‚‹ć«ćÆć€ę›“ę–°ć™ć‚‹č”Œć«ć‚«ćƒ¼ć‚½ćƒ«ć‚’ē§»å‹•ć—ć¦ć€ćć®č”Œć®å€‹åˆ„ć®åˆ—ć«åÆ¾ć—ć¦updateXXXćƒ”ć‚½ćƒƒćƒ‰ć‚’å‘¼ć³å‡ŗ恗恦恋悉态updateRow()ć‚’å‘¼ć³å‡ŗć—ć¦ę“ä½œć‚’å®Œäŗ†ć—ć¾ć™ć€‚ä¾‹:

rs.first();
rs.updateString(4, "Francis");
rs.updateRow();

ę³Øꄏ:

複ꕰ恮č”Øć®åŒåć®åˆ—ć‚’ę›“ę–°ć™ć‚‹å “åˆć€åˆ—ć®å‚ē…§ć«ćÆUpdateę–‡ć§åˆ—ć®ē“¢å¼•ē•Ŗå·ć‚’ä½æē”Ø恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚


RowSetć«č”Œć‚’ęŒæå…„ć™ć‚‹

č”Œć‚’ęŒæå…„ć™ć‚‹ć«ćÆć€ę–°č¦ć®ęŒæå…„č”Œć«ć‚«ćƒ¼ć‚½ćƒ«ć‚’ē§»å‹•ć—ć¦ćć®č”Œć®åˆ—ć®å€¤ć‚’ę›“ꖰ恗恦恋悉态insertRow()ć‚’å‘¼ć³å‡ŗ恗恦RowSetć«č”Œć‚’čæ½åŠ ć—ć¾ć™ć€‚ä¾‹:

rs.moveToInsertRow();
rs.updateInt(1, 104);
rs.updateString("FIRST_NAME", "Yuri");
rs.updateString("MIDDLE_NAME", "M");
rs.updateString("LAST_NAME", "Zhivago");
rs.updateString("PHONE", "1234567812");
rs.updateString("EMAIL", "Yuri@poet.com");
rs.insertRow();
rs.moveToCurrentRow();

č”Œć‚’ęŒæå…„ć—ćŸå¾Œć«ćÆ态꘎ē¤ŗēš„ć«ć‚«ćƒ¼ć‚½ćƒ«ć‚’ē§»å‹•ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ć‚«ćƒ¼ć‚½ćƒ«ćŒęš—é»™ēš„恫ē§»å‹•ć™ć‚‹ć“ćØćÆć‚ć‚Šć¾ć›ć‚“ć€‚

RowSetć®č”Œć‚’å‰Šé™¤ć™ć‚‹

RowSetć®č”Œć‚’å‰Šé™¤ć™ć‚‹ć«ćÆć€ć‚«ćƒ¼ć‚½ćƒ«ć‚’ćć®č”Œć«ē§»å‹•ć—恦deleteRow()ć‚’å‘¼ć³å‡ŗć—ć¾ć™ć€‚ä¾‹:

rs.last();
rs.deleteRow();

RowSetć®å¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć™ć‚‹

RowSetć®å€‹åˆ„ć®č”Œć‚’å¤‰ę›“ć—ćŸå¾Œć«ćÆ态acceptChanges()ć‚’å‘¼ć³å‡ŗć—ć¦å¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ä¼ę’­ć—ć¾ć™ć€‚ä¾‹:

rs.acceptChanges();

acceptChanges()ć‚’å‘¼ć³å‡ŗ恙ćØ态RowSet恧ćÆ态恙恧恫RowSet恧ä½æē”Øć•ć‚Œć¦ć„ć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šęƒ…å ±ć‚’ä½æē”Ø恙悋恋(ć€Œćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć€ć‚’å‚ē…§)态acceptChanges(connection)ćƒ”ć‚½ćƒƒćƒ‰ć§ęø”ć•ć‚ŒćŸęŽ„ē¶šć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ęŽ„ē¶šć—ć¾ć™ć€‚1ć¤ć¾ćŸćÆč¤‡ę•°ć®č”Œć‚’å¤‰ę›“ć—ćŸå¾Œć«acceptChanges()ć‚’å‘¼ć³å‡ŗć›ć¾ć™ć€‚RowSet恫åÆ¾ć—ć¦ć™ć¹ć¦ć®å¤‰ę›“ć‚’č”Œć£ćŸå¾Œć«acceptChanges()ć‚’å‘¼ć³å‡ŗ恙ćØ态RowSetć‹ć‚‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćø恮ꎄē¶šćŒ1åŗ¦ć ć‘恫ćŖć‚‹ć®ć§ć‚ˆć‚ŠåŠ¹ēŽ‡ēš„恧恙怂

WebLogic Server恧RowSet悒ä½æē”Øć™ć‚‹å “åˆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«åÆ¾ć™ć‚‹ę›øč¾¼ćæćØčŖ­å–悊恫ćÆweblogic.jdbc.rowset.WLSyncProviderć‚Ŗ惖ć‚ø悧ć‚ÆćƒˆćŒå†…éƒØēš„恫ä½æē”Øć•ć‚Œć¾ć™ć€‚WLSyncProvider恧ćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®å¤‰ę›“ć«ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ćŒä½æē”Øć•ć‚Œć¾ć™ć€‚ć¤ć¾ć‚Šć€RowSetćøć®å…„åŠ›ę™‚ć‹ć‚‰RowSetć®ćƒ‡ćƒ¼ć‚æć®å¤‰ę›“ćŒćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ä¼ę’­ć•ć‚Œć‚‹ć¾ć§ć®é–“ć«ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ćƒ‡ćƒ¼ć‚æćŒåˆ„ć®ćƒ—ćƒ­ć‚»ć‚¹ć«ć‚ˆć£ć¦å¤‰ę›“ć•ć‚ŒćŖ恄ćØä»®å®šć•ć‚Œć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«å¤‰ę›“ć‚’ę›øćč¾¼ć‚€å‰ć«ćÆ态WLSyncProviderć«ć‚ˆć£ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ćƒ‡ćƒ¼ć‚æćØRowSetć®å…ƒć®å€¤(RowSetć®ä½œęˆę™‚ć¾ćŸćÆęœ€å¾Œć®åŒęœŸć®éš›ć«RowSet恫čŖ­ćæč¾¼ć¾ć‚ŒćŸå€¤)恌ęÆ”č¼ƒć•ć‚Œć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚€’¹ć®å€¤ć«ćŖć‚“ć‚‰ć‹ć®å¤‰ę›“ćŒć‚ć£ćŸå “åˆć«ćÆjavax.sql.rowset.spi.SyncProviderExceptionćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ćÆć©ć®å¤‰ę›“ć‚‚ę›øćč¾¼ć¾ć‚Œć¾ć›ć‚“ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć“ć®ä¾‹å¤–ć‚’ę•ę‰ć—ć¦ć€å‡¦ē†ę–¹ę³•ć‚’ę±ŗå®šć§ćć¾ć™ć€‚č©³ē“°ć«ć¤ć„恦ćÆ态怌SyncResolver悒ä½æē”Ø恗恟SyncProviderExceptionć®å‡¦ē†ć€ć‚’参ē…§ć—ć¦ćć ć•ć„ć€‚

WLCachedRowSetć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆCachedRowSetć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®ę‹”å¼µć§ć€ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć§ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ćƒćƒŖć‚·ćƒ¼ć‚’éøęŠžć§ćć¾ć™ć€‚č©³ē“°ć«ć¤ć„恦ćÆ态怌ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ćƒćƒŖć‚·ćƒ¼ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

å¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ä¼ę’­ć—ćŸå¾Œć«ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ē’°å¢ƒć«åæœć˜ć¦RowSetć®ćƒ©ć‚¤ćƒ•ćƒ»ć‚µć‚¤ć‚Æćƒ«ć®ć‚¹ćƒ†ćƒ¼ć‚ø恌怌Designing怍(čØ­č؈)ć¾ćŸćÆ怌Populating怍(兄力)ć«å¤‰ć‚ć‚Šć¾ć™ć€‚ć€ŒDesigning怍(čØ­č؈)ć‚¹ćƒ†ćƒ¼ć‚øć®å “åˆć€å†ć³ä½æē”Øć™ć‚‹å‰ć«RowSetć«å†å…„åŠ›ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ć€ŒPopulating怍(兄力)ć‚¹ćƒ†ćƒ¼ć‚øć®å “åˆć€ē¾åœØć®ćƒ‡ćƒ¼ć‚æ悒ꌁ恤RowSet悒ä½æē”Øć§ćć¾ć™ć€‚č©³ē“°ć«ć¤ć„恦ćÆć€ć€Œćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³å®Œäŗ†å¾Œć®WebLogic RowSetć®å†åˆ©ē”Øć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

RowSetć‚’å†ć³ä½æē”Ø恙悋äŗˆå®šćŒćŖć„å “åˆćÆ态close()ćƒ”ć‚½ćƒƒćƒ‰ć§é–‰ć˜ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ä¾‹:

rs.close();

RowSet恫åÆ¾ć™ć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ę›“ę–°ē”Ø惔ć‚æćƒ‡ćƒ¼ć‚æ恮čح定

SQLå•åˆć›ć§RowSetć«å…„åŠ›ć™ć‚‹å “åˆć€WebLogic恮RowSetå®Ÿč£…ć§ćÆResultSetMetaDatać‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Ø恗恦态č‡Ŗ動ēš„恫RowSetå†…ć®ćƒ‡ćƒ¼ć‚æ恮č”Ø名ćØåˆ—åćŒčŖč­˜ć•ć‚Œć¾ć™ć€‚恻ćØć‚“ć©ć®å “åˆć€RowSetćŒå¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ę›øćęˆ»ć™ćŸć‚ć«åæ…要ćŖSQL悒ē”Ÿęˆć™ć‚‹ć«ćÆć€ć“ć®ęƒ…å ±ć§ååˆ†ć§ć™ć€‚ćŸć ć—äø€éƒØ恮JDBCćƒ‰ćƒ©ć‚¤ćƒć§ćÆć€ć“ć®å•åˆć›ć§čæ”ć•ć‚Œć‚‹č”Œć«č”ØćŠć‚ˆć³åˆ—ć®ćƒ”ć‚æćƒ‡ćƒ¼ć‚æćŒå«ć¾ć‚Œć¾ć›ć‚“ć€‚RowSetć®ćƒ‡ćƒ¼ć‚æå¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć—ć‚ˆć†ćØ恙悋ćØ态ꬔ恮ć‚Øćƒ©ćƒ¼ćŒč”Øē¤ŗć•ć‚Œć¾ć™ć€‚

java.sql.SQLException: Unable to determine the table name for column: 
column_name. Please ensure that you've called WLRowSetMetaData.setTableName to 
set a table name for this column.

č”ØåćŒćŖć„å “åˆć€RowSetćÆčŖ­č¾¼ćæę“ä½œć«ć®ćæä½æē”Øć§ćć¾ć™ć€‚č”Øåć‚’ćƒ—ćƒ­ć‚°ćƒ©ćƒ ēš„ć«ęŒ‡å®šć—ćŖ恄限悊态RowSet恧ćÆꛓꖰ悒ē™ŗč”Œć§ćć¾ć›ć‚“ć€‚ć¾ćŸć€setKeyColumns()ćƒ”ć‚½ćƒƒćƒ‰ć«ć‚ˆć‚‹äø»ć‚­ćƒ¼åˆ—恮čØ­å®šćŒåæ…要ćŖå “åˆć‚‚ć‚ć‚Šć¾ć™ć€‚ä¾‹:

rs.setTableName(PHYSICIAN);
rs.setKeyColumns(new int[] { 1 });

č©³ē“°ć«ć¤ć„恦ćÆ态javax.sql.rowset.CachedRowSetć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®čŖ¬ę˜Žć‚’参ē…§ć—ć¦ćć ć•ć„ć€‚

惔ć‚æćƒ‡ćƒ¼ć‚æć‚’ę‰±ć†ćŸć‚ć®WebLogic RowSetę‹”å¼µ

仄äø‹ć®ēÆ€ć§ćÆ态RowSet恫åÆ¾ć™ć‚‹é©åˆ‡ćŖ惔ć‚æćƒ‡ćƒ¼ć‚æć®å–å¾—ć¾ćŸćÆčØ­å®šć«ä½æē”Ø恧恍悋WebLogic RowSetę‹”å¼µć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

executeAndGuessTableNamećØexecuteAndGuessTableNameAndPrimaryKeys

SQLå•åˆć›ć§RowSetć«å…„åŠ›ć™ć‚‹å “åˆć€é€šåøøćÆexecute()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¦å•åˆć›ć‚’å®Ÿč”Œć—ć€ćƒ‡ćƒ¼ć‚æ悒čŖ­ćæč¾¼ćæć¾ć™ć€‚WLCachedRowSetå®Ÿč£…ć«ćÆć€é–¢é€£ä»˜ć‘ć‚‰ć‚ŒćŸč”Ø恮惔ć‚æćƒ‡ćƒ¼ć‚æć‚‚č­˜åˆ„ć™ć‚‹ćŸć‚ć«executećƒ”ć‚½ćƒƒćƒ‰ć‚’ę‹”å¼µć—ćŸexecuteAndGuessTableNamećƒ”ć‚½ćƒƒćƒ‰ćŠć‚ˆć³executeAndGuessTableNameAndPrimaryKeysćƒ”ć‚½ćƒƒćƒ‰ćŒē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚

executeAndGuessTableNamećƒ”ć‚½ćƒƒćƒ‰ć§ćÆć€é–¢é€£ä»˜ć‘ć‚‰ć‚ŒćŸSQLć‚’č§£ęžć—ć¦ć€ć™ć¹ć¦ć®åˆ—ć®č”Øåć‚’ć€SQLć‚­ćƒ¼ćƒÆćƒ¼ćƒ‰FROM恫ē¶šćęœ€åˆć®čŖžćØ恗恦čØ­å®šć—ć¾ć™ć€‚

executeAndGuessTableNameAndPrimaryKeysćƒ”ć‚½ćƒƒćƒ‰ćÆ态SQLć‚³ćƒžćƒ³ćƒ‰ć‚’č§£ęžć—ć¦č”Øåć‚’čŖ­ćæå–ć‚Šć¾ć™ć€‚ē¶šć„恦态java.sql.DatabaseMetaData悒ä½æē”Ø恗恦č”Ø恮äø»ć‚­ćƒ¼ć‚’åˆ¤å®šć—ć¾ć™ć€‚


ę³Øꄏ:

ć“ć‚Œć‚‰ć®ćƒ”ć‚½ćƒƒćƒ‰ćÆDBMSć¾ćŸćÆJDBCćƒ‰ćƒ©ć‚¤ćƒć®ć‚µćƒćƒ¼ćƒˆć«ä¾å­˜ć—ć¦ć„ć¾ć™ć€‚ć™ć¹ć¦ć®DBMSć€ć™ć¹ć¦ć®JDBCćƒ‰ćƒ©ć‚¤ćƒć§ę©Ÿčƒ½ć™ć‚‹ćØćÆé™ć‚Šć¾ć›ć‚“ć€‚


MetaDatać‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Ø恗恟č”ØćŠć‚ˆć³äø»ć‚­ćƒ¼ęƒ…å ±ć®čح定

WLRowSetMetaDatać‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Ø恗恦č”ØćŠć‚ˆć³äø»ć‚­ćƒ¼ęƒ…å ±ć‚’ę‰‹å‹•ć§čØ­å®šć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚

WLRowSetMetaData metaData = (WLRowSetMetaData) rowSet.getMetaData();
// Sets one table name for all columns
metaData.setTableName("employees");

ć¾ćŸćÆ

metaData.setTableName("e_id", "employees");
metaData.setTableName("e_name", "employees");

WLRowSetMetaDatać‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Ø恗恦äø»ć‚­ćƒ¼åˆ—ć‚’ęŒ‡å®šć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚

metaData.setPrimaryKeyColumn("e_id", true);

č©³ē“°ć«ć¤ć„恦ćÆ态weblogic.jdbc.rowset.WLRowSetMetaData恮Javadocć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

ę›øč¾¼ćæč”Ø恮čح定

WLRowSetMetaDatać‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć«ćÆć€ę›“ę–°ć¾ćŸćÆå‰Šé™¤ć™ć‚‹č”Ø恮ćæć‚’ęŒ‡å®šć™ć‚‹ćŸć‚ć®setWriteTableNamećƒ”ć‚½ćƒƒćƒ‰ćŒć‚ć‚Šć¾ć™ć€‚ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ćÆ通åøø态複ꕰ恮č”Ø恮ēµåˆćŒå…„åŠ›ć•ć‚Œć¦ć„ć‚‹RowSet恫恊恄恦态1恤恮č”Ø恮ćæć‚’ę›“ę–°ć™ć‚‹å “åˆć«ä½æē”Øć—ć¾ć™ć€‚ę›øč¾¼ćæč”Øć«å±žć•ćŖć„åˆ—ćÆčŖ­å–ć‚Šå°‚ē”ØćØć—ć¦ćƒžćƒ¼ć‚Æć•ć‚Œć¾ć™ć€‚

恟ćØ恈恰态RowSetć«ć€Œę³Øꖇ怍ćØć€Œé”§å®¢ć€ć®ēµåˆćŒå«ć¾ć‚Œć‚‹ćØć—ć¾ć™ć€‚ę›øč¾¼ćæč”Ø悒怌ę³Øę–‡ć€ć«čØ­å®šć—ć¾ć™ć€‚deleteRowć‚’å‘¼ć³å‡ŗ恙ćØ态怌ę³Øę–‡ć€ć®č”ŒćÆå‰Šé™¤ć•ć‚Œć¾ć™ćŒć€ć€Œé”§å®¢ć€ć®č”ŒćÆå‰Šé™¤ć•ć‚Œć¾ć›ć‚“ć€‚


ę³Øꄏ:

JSR-114ćÆ态WebLogic CachedRowSetMetaData.setWriteTableNamećƒ”ć‚½ćƒƒćƒ‰ćØåŒć˜ę©Ÿčƒ½ć‚’å‚™ćˆćŸCachedRowSet.setTableName (http://download.oracle.com/javase/6/docs/api/javax/sql/rowset/CachedRowSet.html#setTableName(java.lang.String)ć‚’å‚ē…§)ć‚’ęä¾›ć—ć¾ć™ć€‚ć©ć”ć‚‰ć®ćƒ”ć‚½ćƒƒćƒ‰ć‚’å‘¼ć³å‡ŗ恗恦悂态ę›øč¾¼ćæč”Øć«å±žć•ćŖć„åˆ—ćŒčŖ­å–ć‚Šå°‚ē”Ø恮悂恮ćØć—ć¦ćƒžćƒ¼ć‚Æć•ć‚Œć¾ć™ć€‚WebLogic恧ćÆć¾ćŸć€åˆ—ćŒć©ć®č”Øć«å±žć™ć‚‹ć‹ć®ćƒžćƒƒćƒ”ćƒ³ć‚°ć«ä½æē”Ø恕悌悋CachedRowSetMetaData.setTableNamećƒ”ć‚½ćƒƒćƒ‰ćŒē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚setTableName悒ä½æē”Ø恗恦ę›øč¾¼ćæč”Ø悒čØ­å®šć™ć‚‹éš›ć«ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«é©ć—ćŸAPI悒ä½æē”Øć—ć¦ćƒ”ć‚½ćƒƒćƒ‰ć‚’å®Ÿč£…ć™ć‚‹ć‚ˆć†ć«ę³Øę„ć—ć¦ćć ć•ć„ć€‚


RowSetćØćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³

恻ćØć‚“ć©ć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‚„JDBCć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ä½æē”Øć—ć¾ć™ć€‚RowSetćÆJTAćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’å«ć‚€ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ć‚µćƒćƒ¼ćƒˆć—ć¦ć„ć¾ć™ć€‚äø€čˆ¬ēš„ćŖä½æē”Ø例ćÆꬔ恮ćØćŠć‚Šć§ć™ć€‚ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³1恧RowSetć‚’å–å¾—ć—ć¾ć™ć€‚ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³1ćŒć‚³ćƒŸćƒƒćƒˆć•ć‚Œć¾ć™ć€‚åŸŗåŗ•ć®ćƒ‡ćƒ¼ć‚æ恫åÆ¾ć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‚„ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚µćƒ¼ćƒćƒ¼ć«ć‚ˆć‚‹ćƒ­ćƒƒć‚ÆćÆć‚ć‚Šć¾ć›ć‚“ć€‚RowSetćÆćƒ”ćƒ¢ćƒŖćƒ¼å†…ć«ćƒ‡ćƒ¼ć‚æ悒äæęŒć—ć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æć‚’å¤‰ę›“ć—ćŸć‚Šć€ćƒćƒƒćƒˆćƒÆćƒ¼ć‚ÆēµŒē”±ć§ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«ęä¾›ć—ćŸć‚Šć§ćć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«åÆ¾ć™ć‚‹å¤‰ę›“ć‚’ć‚³ćƒŸćƒƒćƒˆć™ć‚‹å “åˆć€ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³2ć‚’é–‹å§‹ć—ć¦ć€RowSet恮acceptChangesćƒ”ć‚½ćƒƒćƒ‰ć‚’å‘¼ć³å‡ŗć—ć¾ć™ć€‚ćć®å¾Œćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³2ćŒć‚³ćƒŸćƒƒćƒˆć•ć‚Œć¾ć™ć€‚

JTAć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćØ恮ēµ±åˆ

EJBć‚³ćƒ³ćƒ†ćƒŠćØUserTransactionć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆJTAćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćƒ»ćƒžćƒćƒ¼ć‚øćƒ£ć‚’ä½æē”Øć—ć¦ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’é–‹å§‹ć—ć¾ć™ć€‚RowSetć®ę“ä½œćÆć“ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć«å‚åŠ ć™ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚JTAćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć«å‚åŠ ć™ć‚‹ć«ćÆ态RowSetćÆćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³åƾåæœć®DataSource (TxDataSource)悒ä½æē”Ø恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚DataSourcećÆWebLogic Serverć‚³ćƒ³ć‚½ćƒ¼ćƒ«ć§ę§‹ęˆć§ćć¾ć™ć€‚

acceptChanges恧ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖē«¶åˆć‚„ä»–ć®ä¾‹å¤–ćŒē™ŗē”Ÿć—ćŸå “åˆć€RowSetćÆć‚°ćƒ­ćƒ¼ćƒćƒ«JTAćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’äø­ę­¢ć—ć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćÆ通åøøćƒ‡ćƒ¼ć‚æć‚’å†ć³čŖ­ćæč¾¼ć‚“ć§ć€ę–°ć—ć„ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć§ę›“ę–°ć‚’å†ć³å‡¦ē†ć—ć¾ć™ć€‚

ć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ä½æē”Ø恙悋RowSetć®å‹•ä½œ

éšœå®³ć¾ćŸćÆćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æ恌ē™ŗē”Ÿć™ć‚‹ćØć€ćƒ‡ćƒ¼ć‚æćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æć•ć‚Œć¾ć™ćŒć€RowSet恋悉ćÆćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æć•ć‚Œć¾ć›ć‚“ć€‚ä½œę„­ć‚’é€²ć‚ć‚‹å‰ć«ć€ę¬”ć®ć„ćšć‚Œć‹ć‚’č”Œć†åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

  • rowset.refreshć‚’å‘¼ć³å‡ŗć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ć®ćƒ‡ćƒ¼ć‚æ恧RowSetć‚’ę›“ę–°ć—ć¾ć™ć€‚

  • ē¾åœØć®ćƒ‡ćƒ¼ć‚æ恧ꖰ恗恄RowSetć‚’ä½œęˆć—ć¾ć™ć€‚

ćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć®ä½æē”Ø

JTAć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ä½æē”Ø恗ćŖć„å “åˆć€RowSetćÆćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ä½æē”Øć—ć¾ć™ć€‚ęœ€åˆć«ęŽ„ē¶šć«åÆ¾ć™ć‚‹setAutoCommit(false)ć‚’å‘¼ć³å‡ŗć—ć¾ć™ć€‚ę¬”ć«SQLę–‡ć‚’ć™ć¹ć¦ē™ŗč”Œć—ć¦ć€ęœ€å¾Œć«connection.commit()ć‚’å‘¼ć³å‡ŗć—ć¾ć™ć€‚ć“ć‚Œć§ćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ć‚³ćƒŸćƒƒćƒˆć—ć‚ˆć†ćØć—ć¾ć™ć€‚EJBć¾ćŸćÆJMSć‚³ćƒ³ćƒ†ćƒŠć«ć‚ˆć£ć¦é–‹å§‹ć•ć‚ŒćŸJTAćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćØēµ±åˆć™ć‚‹å “合ćÆć€ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ćÆä½æē”Ø恗ćŖ恄恧恏恠恕恄怂

acceptChanges恧ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖē«¶åˆć‚„ä»–ć®ä¾‹å¤–ćŒē™ŗē”Ÿć—ćŸå “åˆć€RowSetćÆćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æć—ć¾ć™ć€‚ć“ć®å “åˆć€acceptChanges恧ē™ŗč”Œć•ć‚ŒćŸSQLćÆć€ć„ćšć‚Œć‚‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ć‚³ćƒŸćƒƒćƒˆć•ć‚Œć¾ć›ć‚“ć€‚

ćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ä½æē”Ø恙悋RowSetć®å‹•ä½œ

恓恮ēÆ€ć§ćÆć€å¤±ę•—ć—ćŸćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć«ćŠć‘ć‚‹RowSetć®å‹•ä½œć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚ć“ć®å‹•ä½œćÆ态ꎄē¶šć‚Ŗ惖ć‚ø悧ć‚Æ惈恮ēØ®é”žć«ć‚ˆć£ć¦ē•°ćŖć‚Šć¾ć™ć€‚

connection.commitć®å‘¼å‡ŗ恗

恓恮ēŠ¶ę³ć§ćÆ态ꎄē¶šć‚Ŗ惖ć‚ø悧ć‚Æ惈ćÆRowSetć«ć‚ˆć£ć¦ä½œęˆć•ć‚ŒćŸć‚‚ć®ć§ćÆćŖ恏态connection.commitć‚’å‘¼ć³å‡ŗ恙恓ćØć«ć‚ˆć£ć¦ćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’é–‹å§‹ć—ć¾ć™ć€‚ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒå¤±ę•—ć™ć‚‹ć‹ć€ć¾ćŸćÆꎄē¶šćŒconnection.rollbackć‚’å‘¼ć³å‡ŗ恙ćØć€ćƒ‡ćƒ¼ć‚æćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æć•ć‚Œć¾ć™ćŒć€RowSet恫恊恄恦ćÆćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æć•ć‚Œć¾ć›ć‚“ć€‚ä½œę„­ć‚’é€²ć‚ć‚‹å‰ć«ć€ę¬”ć®ć„ćšć‚Œć‹ć‚’č”Œć†åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

  • rowset.refreshć‚’å‘¼ć³å‡ŗć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ć®ćƒ‡ćƒ¼ć‚æ恧RowSetć‚’ę›“ę–°ć—ć¾ć™ć€‚

  • ē¾åœØć®ćƒ‡ćƒ¼ć‚æ恧ꖰ恗恄RowSetć‚’ä½œęˆć—ć¾ć™ć€‚

acceptChangesć®å‘¼å‡ŗ恗

恓恮ēŠ¶ę³ć§ćÆ态RowSet恌ē‹¬č‡Ŗ恮ꎄē¶šć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć—ć€ćć‚Œć‚’ä½æē”Ø恗恦acceptChangesć‚’å‘¼ć³å‡ŗ恙恓ćØć«ć‚ˆć‚ŠRowSetå†…ć®ćƒ‡ćƒ¼ć‚æć‚’ę›“ę–°ć—ć¾ć™ć€‚éšœå®³ćŒē™ŗē”Ÿć—ćŸå “åˆć€ć¾ćŸćÆRowSet恌connection.rollbackć‚’å‘¼ć³å‡ŗć—ćŸå “åˆć€ćƒ‡ćƒ¼ć‚æćÆRowSetć‹ć‚‰ć‚‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ć‚‚ćƒ­ćƒ¼ćƒ«ćƒćƒƒć‚Æć•ć‚Œć¾ć™ć€‚

ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³å®Œäŗ†å¾Œć®WebLogic RowSetć®å†åˆ©ē”Ø

å¤šćć®å “åˆć€RowSetć®å¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć—ćŸå¾Œć«ć€ćć®RowSet悒ē¾åœØå…„åŠ›ć•ć‚Œć¦ć„ć‚‹ćƒ‡ćƒ¼ć‚æć®ć¾ć¾ä½æē”Ø恙悋恓ćØ恌åæ…要恫ćŖ悋恧恗悇恆怂恝恆恙悋恓ćØć§ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®å¾€å¾©å›žę•°ćŒęø›ć‚‹ćŸć‚ć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć‚’å‘äøŠć•ć›ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚ćŸć ć—ć€RowSetćØćć®ćƒ‡ćƒ¼ć‚æć‚’å†åˆ©ē”Øć™ć‚‹å “åˆć€ćć®ćƒ‡ćƒ¼ć‚æć«ć•ć‚‰ć«å¤‰ę›“ć‚’åŠ ćˆć‚‹å‰ć«ć€ćć®RowSetćŒå‚åŠ ć™ć‚‹ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒåæ…ćšć™ć¹ć¦å®Œäŗ†ć—恦恄悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

ćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć§RowSet悒ä½æē”Ø恗恦恄恦态RowSetćƒ‡ćƒ¼ć‚æć®å¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć™ć‚‹å‰ć«ć€ęŽ„ē¶šć‚Ŗ惖ć‚ø悧ć‚Æ惈恫autocommit=truećØčØ­å®šć•ć‚Œć¦ć„ć‚‹å “åˆć€ćƒ‡ćƒ¼ć‚æć®åŒęœŸå¾Œć«ē¾åœØć®å€¤ć®ć¾ć¾RowSetć‚’å†åˆ©ē”Øć§ćć¾ć™ć€‚ć“ć‚ŒćÆ态autocommit恮čØ­å®šć«ć‚ˆć£ć¦ćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒć™ćć«å¼·åˆ¶ēš„ć«å®Œäŗ†ć™ć‚‹ćŸć‚ć§ć™ć€‚RowSetć®å¤‰ę›“å‰ć«ćÆć€ćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒåæ…ćšå®Œäŗ†ć—ć¾ć™ć€‚

仄äø‹ć®ć„ćšć‚Œć‹ć®ēŠ¶ę³ć§RowSet悒ä½æē”Øć—ć¦ć„ć‚‹å “åˆć€ć™ć¹ć¦ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒåæ…恚č‡Ŗ動ēš„ć«å®Œäŗ†ć™ć‚‹ćØćÆé™ć‚Šć¾ć›ć‚“ć€‚

  • ć‚°ćƒ­ćƒ¼ćƒćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć§ä½æē”Ø恗恦恄悋

  • ćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć§ć€autocommit=falsećØčØ­å®šć•ć‚ŒćŸęŽ„ē¶šć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Øć—ć¦ćƒ‡ćƒ¼ć‚æć®å¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØåŒęœŸć—ć¦ć„ć‚‹

ć“ć‚Œć‚‰ć®ć„ćšć‚Œć‹ć®å “åˆć€ē¾åœØć®ćƒ‡ćƒ¼ć‚æ恧RowSetć‚’å†åˆ©ē”Øć™ć‚‹å‰ć«ć€acceptChanges()ć‚’å‘¼ć³å‡ŗć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§å¤‰ę›“ć‚’åŒęœŸć—ćŸå¾Œć§ć€tx.commit()ć¾ćŸćÆjava.sql.Connection.commit()ć®ä»£ć‚ć‚Šć«javax.sql.rowset.CachedRowSet.commit()ć‚’å‘¼ć³å‡ŗć—ć¦ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚’ć‚³ćƒŸćƒƒćƒˆć—ć¾ć™ć€‚CachedRowSet.commit()ćƒ”ć‚½ćƒƒćƒ‰ć«ćÆConnection.commit()ćƒ”ć‚½ćƒƒćƒ‰ćŒćƒ©ćƒƒćƒ—ć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć‚Œć‚’ä½æē”Ø恙悋ćØåæ…ćšćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ćŒå®Œäŗ†ć•ć‚Œć€ćć®å¾Œć«RowSetć‚’å¤‰ę›“ć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚

FilteredRowSet

仄äø‹ć®ēÆ€ć§ćÆ态WebLogic Server恫恊恑悋ęؙęŗ–恮FilteredRowSet恮ä½æć„ę–¹ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

FilteredRowSet恮ē‰¹ę€§

FilteredRowSet悒ä½æē”Ø恙悋ćØć‚­ćƒ£ćƒƒć‚·ćƒ„ć•ć‚ŒćŸč”Œć®ć‚µćƒ–ć‚»ćƒƒćƒˆć‚’å–ć‚Šę‰±ćˆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ęŽ„ē¶šć•ć‚Œć¦ć„ćŖ恄ēŠ¶ę…‹ć§č”Œć®ć‚µćƒ–ć‚»ćƒƒćƒˆć‚’å¤‰ę›“ć§ćć¾ć™ć€‚ćƒ•ć‚£ćƒ«ć‚æ処ē†ć•ć‚ŒćŸRowSetćØćÆć€åˆ†ć‹ć‚Šć‚„ć™ćčØ€ćˆć°ć€ć‚­ćƒ£ćƒƒć‚·ćƒ„ć•ć‚Œć¦ć„ć‚‹RowSet恮äø­ć§ć€ē‰¹å®šć®č”Œć®ćæć‚’é–²č¦§ć€ē§»å‹•ć€ę“ä½œć§ćć‚‹ć‚‚ć®ć‚’ć„ć„ć¾ć™ć€‚FilteredRowSet恫ćÆ仄äø‹ć®ć‚ˆć†ćŖē‰¹ę€§ćŒć‚ć‚Šć¾ć™ć€‚

  • 利ē”Øć§ćć‚‹č”ŒćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ęŒ‡å®šć—ćŸjavax.sql.rowset.Predicateć‚Ŗ惖ć‚ø悧ć‚Æ惈恧ę±ŗå®šć•ć‚Œć€setFilter()ćƒ”ć‚½ćƒƒćƒ‰ć§ęŒ‡å®šć•ć‚Œć¾ć™ć€‚

  • Predicateć‚Ŗ惖ć‚ø悧ć‚Æ惈恫ćÆjavax.sql.rowset.Predicateć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’å®Ÿč£…ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚Predicateć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć«ćÆpublic boolean evaluate(RowSet rs)ćƒ”ć‚½ćƒƒćƒ‰ćŒć‚ć‚Šć€ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ć§RowSetć®å„č”Œć‚’č©•ä¾”ć—ć¾ć™ć€‚

    • ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ć‹ć‚‰true恌čæ”ć•ć‚ŒćŸå “åˆć€ćć®č”ŒćÆ利ē”ØåÆčƒ½ć§é–²č¦§ć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚

    • ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ć‹ć‚‰false恌čæ”ć•ć‚ŒćŸå “åˆć€ćć®č”ŒćÆ利ē”Øć‚‚é–²č¦§ć‚‚ć§ćć¾ć›ć‚“ć€‚

    č©³ē“°ć«ć¤ć„恦ćÆ怌FilteredRowSet恫åÆ¾ć™ć‚‹ćƒ•ć‚£ćƒ«ć‚æ恮čØ­å®šć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

  • WebLogic Server恫ćÆweblogic.jdbc.rowset.SQLPredicateć‚Æćƒ©ć‚¹ćØ恄恆javax.sql.rowset.Predicateć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®å®Ÿč£…ćŒē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć®ć‚Æćƒ©ć‚¹ć‚’ä½æē”Ø恙悋ćØ态SQLć®ć‚ˆć†ćŖWHEREå„ć®ę§‹ę–‡ć‚’ä½æē”Ø恗恦FilteredRowSetć®ćƒ•ć‚£ćƒ«ć‚æć‚’å®šē¾©ć§ćć¾ć™ć€‚ć€ŒSQLPredicate态SQLę–¹å¼ć®RowSetćƒ•ć‚£ćƒ«ć‚æć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

ē‰¹ęœ‰ć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°äøŠć®č€ƒę…®äŗ‹é …

RowSetćƒ•ć‚£ćƒ«ć‚æćÆē“Æē©ēš„恧ćÆćŖ恄

FilteredRowSet恮WebLogicå®Ÿč£…ć§ćÆē¾åœØ态FilteredRowSetć«ćƒ•ć‚£ćƒ«ć‚æ悒2回čØ­å®šć™ć‚‹ćØå¤ć„ćƒ•ć‚£ćƒ«ć‚æćŒę–°ć—ć„ćƒ•ć‚£ćƒ«ć‚æ恧ē½®ćę›ćˆć‚‰ć‚Œć¾ć™ć€‚JSR-114恫ćÆ恓恮ē‚¹ć«ć¤ć„恦ćÆć£ćć‚ŠćØć—ćŸč¦å®šćŒć‚ć‚Šć¾ć›ć‚“ć€‚å‚ē…§å®Ÿč£…ćÆåŒć˜ć‚ˆć†ć«å‹•ä½œć—ć¾ć›ć‚“ć€‚č”Œć‚»ćƒƒćƒˆå†…ć®ćƒ•ć‚£ćƒ«ć‚æćƒŖćƒ³ć‚°ć•ć‚ŒćŸč”Œć‚’ć•ć‚‰ć«ćƒ•ć‚£ćƒ«ć‚æćƒŖćƒ³ć‚°ć—ć¾ć™ć€‚ć“ć®å “åˆ2回ē›®ć®ćƒ•ć‚£ćƒ«ć‚æć‚’å¤‰ę›“ć—ć¦åæ…要ćŖć™ć¹ć¦ć®ę”ä»¶ć‚’ćƒ•ć‚£ćƒ«ć‚æć™ć‚‹ć‚ˆć†ć«ć™ć‚‹ćØć€åŒć˜åŠ¹ęžœć‚’å¾—ć‚‰ć‚Œć¾ć™ć€‚

ćƒ•ć‚£ćƒ«ć‚æ恮čØ­å®šć€å¤‰ę›“å‰ć«äæē•™äø­ć®å¤‰ę›“ć‚’č§£ę±ŗ恙悋

RowSetćƒ•ć‚£ćƒ«ć‚æ悒čØ­å®šć¾ćŸćÆå¤‰ę›“ć™ć‚‹å‰ć«RowSet恫äæē•™äø­ć®å¤‰ę›“ćŒć‚ć‚‹å “åˆć€ćć®å¤‰ę›“ć‚’å—ć‘å…„ć‚Œć‚‹(acceptChanges()ć‚’å‘¼ć³å‡ŗ恙)恋态RowSetć®ćƒ‡ćƒ¼ć‚æć‚’å¤‰ę›“å‰ć®ēŠ¶ę…‹ć«ęˆ»ć™(restoreOriginal()ć‚’å‘¼ć³å‡ŗ恙)åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚WebLogic Server恧ćÆč”Œć‚ć‚Œć‚‹åÆčƒ½ę€§ć®ć‚ć‚‹å¤‰ę›“ć‚’ē¤ŗć›ć‚‹ć‚ˆć†ć«RowSetå†…ć®ē§»å‹•ćŒčŖć‚ć‚‰ć‚Œć¦ćŠć‚Šć€ćƒ¦ćƒ¼ć‚¶ćƒ¼ćÆRowSetćƒ•ć‚£ćƒ«ć‚æć‚’å¤‰ę›“ć™ć‚‹å‰ć«äøŠčØ˜ć®ć©ć”ć‚‰ć‹ć®ćƒ”ć‚½ćƒƒćƒ‰ć‚’å‘¼ć³å‡ŗ恙åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚acceptChanges()恧ćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćøć®ć‚¢ć‚Æć‚»ć‚¹ćŒč”Œć‚ć‚Œć€restoreOriginal()恧ćÆč”Œć‚ć‚Œć¾ć›ć‚“ć€‚

FilteredRowSetć®ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

仄äø‹ć®ć‚µćƒ³ćƒ—ćƒ«ć«ć€ć‚­ćƒ£ćƒƒć‚·ćƒ„恕悌恟RowSetć‚’ä½œęˆć—ć¦ć‹ć‚‰WebLogic Server SQLPredicate悒ä½æē”Øć—ć¦ćƒ•ć‚£ćƒ«ć‚æ悒適ē”ØćŠć‚ˆć³å¤‰ę›“ć™ć‚‹ę–¹ę³•ć«ć¤ć„ć¦ē¤ŗć—ć¾ć™ć€‚

例9-2 FilteredRowSetć®ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

import javax.sql.rowset.FilteredRowSet;
import weblogic.jdbc.rowset.RowSetFactory;
import weblogic.jdbc.rowset.SQLPredicate;
public class FilteredRowSetDemo {
public static void main (String[] args) {
//DESIGNING lifecycle stage - Create the rowset and set properties
  try {
    //Create a RowSetFactory instance and from the factory,
    //create a WLCachedRowSet and cast it to a FilteredRowSet.
    RowSetFactory rsfact = RowSetFactory.newInstance();
    FilteredRowSet rs = rsfact.newCachedRowSet();
    //Set database access through a DataSource. 
    //See  Database Connection Options for more options.
    rs.setDataSourceName(examples-dataSource-demoPool);
    rs.setCommand("SELECT ID, FIRST_NAME, MIDDLE_NAME, LAST_NAME,
    PHONE, EMAIL FROM PHYSICIAN WHERE ID>?");
   //CONFIGURE QUERY lifecycle operation - set values for query parameters.
    rs.setInt(1, 0); 
   //POPULATING lifecycle stage - Execute the command to populate the rowset
    rs.execute();
  }
//CONFIGURING METADATA - Populate first, then set MetaData, including KeyColumns
  rs.setKeyColumns(new int[] { 1 });
  while (rs.next ())
//NAVIGATE operations put the rowset in the MANIPULATING lifecycle stage
    {
    System.out.println ("ID: " +rs.getInt (1));
    System.out.println ("FIRST_NAME: " +rs.getString (2));
    System.out.println ("MIDDLE_NAME: " +rs.getString (3));
    System.out.println ("LAST_NAME: " +rs.getString (4));
    System.out.println ("PHONE: " +rs.getString (5));
    System.out.println ("EMAIL: " +rs.getString (6));
    }
  }
//Need to accept changes or call restoreOriginal to put the rowset 
//into the DESIGNING or POPULATING stage.
//After navigating, the rowset is in MANIPULATING stage,
//and you cannot change properties in that lifecycle stage.
  rs.restoreOriginal();
//S E T   F I L T E R
//use SQLPredicate class to create a SQLPredicate object,
//then pass the object in the setFilter method to filter the RowSet. 
  SQLPredicate filter = new SQLPredicate("ID >= 103");
  rs.setFilter(filter);
  System.out.println("Filtered data: ");
  while (rs.next ())
    {
    System.out.println ("ID: " +rs.getInt (1));
    System.out.println ("FIRST_NAME: " +rs.getString (2));
    System.out.println ("MIDDLE_NAME: " +rs.getString (3));
    System.out.println ("LAST_NAME: " +rs.getString (4));
    System.out.println ("PHONE: " +rs.getString (5));
    System.out.println ("EMAIL: " +rs.getString (6));
    System.out.println (" ");
    }
//Need to accept changes or call restoreOriginal to put the rowset 
//into the DESIGNING or POPULATING lifecycle stage.
//After navigating, the rowset is in MANIPULATING stage,
//and you cannot change properties in that lifecycle stage.
  rs.restoreOriginal();
//C H A N G I N G   F I L T E R
  SQLPredicate filter2 = new SQLPredicate("ID <= 103");
  rs.setFilter(filter2);
  System.out.println("Filtered data: ");
  while (rs.next ())
    {
    System.out.println ("ID: " +rs.getInt (1));
    System.out.println ("FIRST_NAME: " +rs.getString (2));
    System.out.println ("MIDDLE_NAME: " +rs.getString (3));
    System.out.println ("LAST_NAME: " +rs.getString (4));
    System.out.println ("PHONE: " +rs.getString (5));
    System.out.println ("EMAIL: " +rs.getString (6));
    System.out.println (" ");
    }
//Need to accept changes or call restoreOriginal to put the rowset 
//into the DESIGNING or POPULATING lifecycle stage.
//After navigating, the rowset is in MANIPULATING stage,
//and you cannot change properties in that lifecycle stage.
  rs.restoreOriginal();
//R E M O V I N G   F I L T E R
  rs.setFilter(null);
  while (rs.next ())
    {
    System.out.println ("ID: " +rs.getInt (1));
    System.out.println ("FIRST_NAME: " +rs.getString (2));
    System.out.println ("MIDDLE_NAME: " +rs.getString (3));
    System.out.println ("LAST_NAME: " +rs.getString (4));
    System.out.println ("PHONE: " +rs.getString (5));
    System.out.println ("EMAIL: " +rs.getString (6));
    System.out.println (" ");
    }
  rs.close();
  }
}

FilteredRowSet恮ć‚Æćƒ©ć‚¹ćØć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®ć‚¤ćƒ³ćƒćƒ¼ćƒˆ

ęؙęŗ–恮FilteredRowSet悒ä½æē”Ø恙悋恫ćÆ态ꬔ恮ć‚Æćƒ©ć‚¹ć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

javax.sql.rowset.FilteredRowSet;
weblogic.jdbc.rowset.RowSetFactory;

äøŠčØ˜ć®ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć§ćÆć€ćƒ•ć‚£ćƒ«ć‚æć®ä½œęˆć«weblogic.jdbc.rowset.SQLPredicateć‚Æćƒ©ć‚¹ć‚‚ä½æē”Øć•ć‚Œć¦ć„ć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆ态weblogic.jdbc.rowset.SQLPredicateć‚Æćƒ©ć‚¹ć‚’ä½æē”Ø恙悋恓ćØ悂态ē‹¬č‡Ŗć®ćƒ•ć‚£ćƒ«ć‚æ惻ć‚Æćƒ©ć‚¹ć‚’ä½œęˆć™ć‚‹ć“ćØ悂åÆčƒ½ć§ć™ć€‚č©³ē“°ć«ć¤ć„恦ćÆ怌FilteredRowSet恫åÆ¾ć™ć‚‹ćƒ•ć‚£ćƒ«ć‚æ恮čØ­å®šć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

FilteredRowSetć®ä½œęˆ

RowSetćÆćƒ•ć‚”ć‚Æ惈ćƒŖćƒ»ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‹ć‚‰ä½œęˆć•ć‚Œć¾ć™ć€‚WebLogic Server恧FilteredRowSetć‚’ä½œęˆć™ć‚‹ć«ćÆ态äø»ć«ä»„äø‹ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. RowSetFactoryć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć‚’ä½œęˆć—ć¾ć™ć€‚ć“ć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćÆć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ä½æē”Ø恙悋RowSetć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć™ć‚‹ćŸć‚ć®ćƒ•ć‚”ć‚Æ惈ćƒŖćØć—ć¦ę©Ÿčƒ½ć—ć¾ć™ć€‚ä¾‹:

    RowSetFactory rsfact = RowSetFactory.newInstance();
    
  2. WLCachedRowSetć‚’ä½œęˆć—ć¦javax.sql.rowset.FilteredRowSetć‚Ŗ惖ć‚ø悧ć‚Æćƒˆåž‹ć«ć‚­ćƒ£ć‚¹ćƒˆć—ć¾ć™ć€‚ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć§ćÆWebLogic newCachedRowSet() RowSetFactoryćƒ”ć‚½ćƒƒćƒ‰ć§WLCachedRowSetć‚Ŗ惖ć‚ø悧ć‚ÆćƒˆćŒä½œęˆć•ć‚Œć¾ć™ć€‚ć“ć®ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ćć®ć¾ć¾ä½æē”Ø恙悋恓ćØć‚‚ć§ćć¾ć™ćŒć€ęؙęŗ–恮FilteredRowSetć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Øć™ć‚‹å “åˆćÆ态ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒FilteredRowSetć‚Ŗ惖ć‚ø悧ć‚Æ惈ćØć—ć¦ć‚­ćƒ£ć‚¹ćƒˆć§ćć¾ć™ć€‚ä¾‹:

    FilteredRowSet rs = rsfact.newCachedRowSet();
    

FilteredRowSetć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć®čح定

FilteredRowSetć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćÆCachedRowSet恮ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćØåŒć˜ć§ć™ć€‚ć€ŒCachedRowSetć®ćƒ—ćƒ­ćƒ‘ćƒ†ć‚£ć®čØ­å®šć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

FilteredRowSetć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³

FilteredRowSetć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćÆCachedRowSet恮ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćØåŒć˜ć§ć™ć€‚ć€Œćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

FilteredRowSetćøć®å…„åŠ›

FilteredRowSetć®ćƒ‡ćƒ¼ć‚æå…„åŠ›ć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćÆCachedRowSet恮ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćØåŒć˜ć§ć™ć€‚ć€ŒCachedRowSetćøć®å…„åŠ›ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

FilteredRowSet恮惔ć‚æćƒ‡ćƒ¼ć‚æ恮čح定

RowSetć®ćƒ‡ćƒ¼ć‚æå¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć™ć‚‹ćŸć‚ć«ć€RowSet恫惔ć‚æćƒ‡ćƒ¼ć‚æ悒čØ­å®šć™ć‚‹ć“ćØ恌åæ…要ćŖå “åˆć‚‚ć‚ć‚Šć¾ć™ć€‚č©³ē“°ć«ć¤ć„恦ćÆ态怌RowSet恫åÆ¾ć™ć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ę›“ę–°ē”Ø惔ć‚æćƒ‡ćƒ¼ć‚æ恮čØ­å®šć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

FilteredRowSet恫åÆ¾ć™ć‚‹ćƒ•ć‚£ćƒ«ć‚æ恮čح定

FilteredRowSetć®č”Œć‚’ćƒ•ć‚£ćƒ«ć‚æ恙悋恫ćÆ态setFilterćƒ”ć‚½ćƒƒćƒ‰ć‚’å‘¼ć³å‡ŗ恗恦态Predicate (ćƒ•ć‚£ćƒ«ć‚æ)ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ć®ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æćØ恗恦ęø”ć—ć¾ć™ć€‚Predicateć‚Ŗ惖ć‚ø悧ć‚Æ惈ćÆjavax.sql.rowset.Predicateć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’å®Ÿč£…ć™ć‚‹ć‚Æćƒ©ć‚¹ć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć§ć™ć€‚FilteredRowSet恮WebLogicå®Ÿč£…ć§ćÆ态ē‹¬č‡Ŗć®ćƒ•ć‚£ćƒ«ć‚æć‚’å®šē¾©ć™ć‚‹ć“ćØ悂态weblogic.jdbc.rowset.SQLPredicateć‚Æćƒ©ć‚¹ć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć‚’ä½æē”Ø恙悋恓ćØć‚‚ć§ćć¾ć™ć€‚

ćƒ¦ćƒ¼ć‚¶ćƒ¼å®šē¾©ć®RowSetćƒ•ć‚£ćƒ«ć‚æ

FilteredRowSetē”Øć®ćƒ•ć‚£ćƒ«ć‚æć‚’å®šē¾©ć™ć‚‹å “åˆć€äø»ć«ä»„äø‹ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. ä½æē”Øć™ć‚‹ćƒ•ć‚£ćƒ«ć‚æ動作(č”Øē¤ŗć™ć‚‹č”Œć‚’ē‰¹å®šć®åˆ—ć®å€¤ć‚’ęŒć¤č”Œć«åˆ¶é™ć™ć‚‹ćŖ恩)ć‚’č”Œć†javax.sql.rowset.Predicateć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’å®Ÿč£…ć™ć‚‹ć‚Æćƒ©ć‚¹ć‚’å®šē¾©ć—ć¾ć™ć€‚ćŸćØ恈恰态IDåˆ—ć®å€¤ć®ēÆ„å›²ć«åŸŗ恄恄恦č”Øē¤ŗć•ć‚Œć‚‹č”Œć‚’åˆ¶é™ć§ćć¾ć™ć€‚å®šē¾©ć™ć‚‹ć‚Æćƒ©ć‚¹ć«ćÆ态IDåˆ—ć®å€¤ć‚’ćƒ•ć‚£ćƒ«ć‚æćƒŖćƒ³ć‚°ć™ć‚‹ćŸć‚ć®ćƒ­ć‚ø惃ć‚ÆćŒå«ć¾ć‚Œć¾ć™ć€‚

  2. ć‚Æćƒ©ć‚¹ć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹(ćƒ•ć‚£ćƒ«ć‚æ)ć‚’ä½œęˆć—ć¦ć€ä½æē”Øć™ć‚‹ćƒ•ć‚£ćƒ«ć‚æę”ä»¶ć‚’ęŒ‡å®šć—ć¾ć™ć€‚ćŸćØ恈恰态IDåˆ—ć®å€¤ćŒ100恋悉199ć¾ć§ć®č”Œć®ćæ悒č”Øē¤ŗ恙悋ćØć„ć£ćŸęŒ‡å®šćŒåÆčƒ½ć§ć™ć€‚

  3. rowset.setFilter()ć‚’å‘¼ć³å‡ŗ恗恦态ć‚Æćƒ©ć‚¹ć‚’ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ć®ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æćØ恗恦ęø”ć—ć¾ć™ć€‚

例9-3恫态javax.sql.rowset.Predicateć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’å®Ÿč£…ć™ć‚‹ć‚Æćƒ©ć‚¹ć®ć‚µćƒ³ćƒ—ćƒ«ć‚’ē¤ŗć—ć¾ć™ć€‚ć“ć®ć‚µćƒ³ćƒ—ćƒ«ć§ćÆć€åˆ—ć®å€¤ć®å¤§ę–‡å­—ćØå°ę–‡å­—ć‚’åŒŗåˆ„ć—ćŖć„ćƒćƒ¼ć‚øćƒ§ćƒ³ć‚’č©•ä¾”ć™ć‚‹ćƒ•ć‚£ćƒ«ć‚æć‚’ä½œęˆć™ć‚‹ć“ćØ恌恧恍悋ć‚Æćƒ©ć‚¹ćŒē¤ŗć•ć‚Œć¾ć™ć€‚ä¾‹9-4ć«ć€ćƒ•ć‚£ćƒ«ć‚æę”ä»¶ć‚’åˆ¤ę–­ć™ć‚‹ć‚Æćƒ©ć‚¹ć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć‚’ä½œęˆć—ć¦ć‹ć‚‰ć€FilteredRowSetē”Øć®ćƒ•ć‚£ćƒ«ć‚æ怒Øć—ć¦ćƒ•ć‚£ćƒ«ć‚æ惻ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒čØ­å®šć™ć‚‹ć‚³ćƒ¼ćƒ‰ć‚’ē¤ŗć—ć¾ć™ć€‚

例9-3 javax.sql.rowset.Predicateć‚’å®Ÿč£…ć™ć‚‹ćƒ•ć‚£ćƒ«ć‚æ惻ć‚Æćƒ©ć‚¹

package examples.jdbc.rowsets;
import javax.sql.rowset.Predicate;
import javax.sql.rowset.CachedRowSet;
import javax.sql.RowSet;
import java.sql.SQLException;
public class SearchPredicate implements Predicate, java.io.Serializable {
  private boolean DEBUG = false;
  private String col = null;
  private String criteria = null;
  //Constructor to create case-insensitive column - value comparison.
  public SearchPredicate(String col, String criteria) {
    this.col = col;
    this.criteria = criteria;
  }
  public boolean evaluate(RowSet rs)  {
    CachedRowSet crs = (CachedRowSet)rs;
    boolean bool = false;
    try {
      debug("evaluate(): "+crs.getString(col).toUpperCase()+" contains "+
          criteria.toUpperCase()+" = "+
          crs.getString(col).toUpperCase().contains(criteria.toUpperCase()));
      if (crs.getString(col).toUpperCase().contains(criteria.toUpperCase()))
        bool = true;
    } catch(Throwable t) {
      t.printStackTrace();
      throw new RuntimeException(t.getMessage());
    }
    return bool;
  }
  public boolean evaluate(Object o, String s) throws SQLException {
    throw new SQLException("String evaluation is not supported.");
  }
  public boolean evaluate(Object o, int i) throws SQLException {
    throw new SQLException("Int evaluation is not supported.");
  }
}

例9-4 FilteredRowSetē”Øć®ćƒ•ć‚£ćƒ«ć‚æ悒čØ­å®šć™ć‚‹ć‚³ćƒ¼ćƒ‰

SearchPredicate pred = new SearchPredicate(ROWSET_LASTNAME, lastName);
rs.setFilter(pred);

WebLogic SQLę–¹å¼ćƒ•ć‚£ćƒ«ć‚æ

Weblogic Server恫ćÆjavax.sql.rowset.Predicateć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’å®Ÿč£…ć™ć‚‹weblogic.jdbc.rowset.SQLPredicateć‚Æćƒ©ć‚¹ćŒē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚SQLPredicateć‚Æćƒ©ć‚¹ć‚’ä½æē”Ø恙悋ćØ态SQLć®ć‚ˆć†ćŖWHEREå„ć®ę§‹ę–‡ć‚’ä½æē”Øć™ć‚‹ćƒ•ć‚£ćƒ«ć‚æć‚’å®šē¾©ć—恦RowSetć®č”Œć‚’ćƒ•ć‚£ćƒ«ć‚æć§ćć¾ć™ć€‚ä¾‹:

SQLPredicate filter = new SQLPredicate("ID >= 103");
rs.setFilter(filter);

č©³ē“°ć«ć¤ć„恦ćÆ态怌SQLPredicate态SQLę–¹å¼ć®RowSetćƒ•ć‚£ćƒ«ć‚æć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

FilteredRowSetć®ćƒ‡ćƒ¼ć‚æć®ę“ä½œ

FilteredRowSetć®ćƒ‡ćƒ¼ć‚æć®ę“ä½œćÆCachedRowSetć®ćƒ‡ćƒ¼ć‚æć®ę“ä½œćØć»ć¼åŒę§˜ć§ć™ć€‚ćŸć ć—ć€č”Œć‚’ęŒæå…„ć—ćŸć‚Šę›“ę–°ć—ćŸć‚Šć™ć‚‹å “åˆć«ćÆ态åæ…ćšćƒ•ć‚£ćƒ«ć‚æę”ä»¶ć®ēÆ„å›²å†…ć§å¤‰ę›“ć‚’č”Œć£ć¦ć€ę“ä½œć—ćŸč”ŒćŒč”Øē¤ŗć•ć‚Œć‚‹č”Œć®é›†åˆć«ę®‹ć‚‹ć‚ˆć†ć«ć—ć¾ć™ć€‚ćŸćØ恈恰态RowSetć®ćƒ•ć‚£ćƒ«ć‚æ恧IDåˆ—ć®å€¤ćŒ105ć‚ˆć‚Šå°ć•ć„č”Œć®ćæ悒č”Øē¤ŗć§ćć‚‹å “åˆć€IDåˆ—ć®å€¤ćŒ106ć®č”Œć‚’ęŒæå…„ć—ć‚ˆć†ćØ恗恟悊态IDć®å€¤ć‚’106ć«ę›“ę–°ć—ć‚ˆć†ćØ恗恟悊恙悋ćØć€ę“ä½œćÆå¤±ę•—ć—ć¦SQLExceptionćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć¾ć™ć€‚

ćƒ‡ćƒ¼ć‚æę“ä½œć®č©³ē“°ć«ć¤ć„恦ćÆ态怌CachedRowSetć®ćƒ‡ćƒ¼ć‚æć®ę“ä½œć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

WebRowSet

WebRowSetćÆ态RowSet悒XMLćƒ•ć‚©ćƒ¼ćƒžćƒƒćƒˆć§čŖ­ćæę›øćć§ćć‚‹ć‚­ćƒ£ćƒƒć‚·ćƒ„ć•ć‚ŒćŸRowSet恧恙怂WebRowSet恫ćÆ仄äø‹ć®ć‚ˆć†ćŖē‰¹ę€§ćŒć‚ć‚Šć¾ć™ć€‚

  • readXml(java.io.InputStream iStream)ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦XMLć‚½ćƒ¼ć‚¹ć‹ć‚‰RowSetć«å…„åŠ›ć—ć¾ć™ć€‚

  • writeXml(java.io.OutputStream oStream)ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¦ćƒ‡ćƒ¼ć‚æćŠć‚ˆć³ćƒ”ć‚æćƒ‡ćƒ¼ć‚æ悒XML恧ę›øćč¾¼ćæć€ä»–ć®ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚³ćƒ³ćƒćƒ¼ćƒćƒ³ćƒˆć§ä½æē”Øć§ćć‚‹ć‚ˆć†ć«ć€ć¾ćŸćÆćƒŖćƒ¢ćƒ¼ćƒˆćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«é€äæ”ć§ćć‚‹ć‚ˆć†ć«ć—ć¾ć™ć€‚

  • RowSetć®å…„åŠ›ć‚„RowSet恋悉恮ę›øč¾¼ćæ恫ä½æē”Ø恕悌悋XMLć‚³ćƒ¼ćƒ‰ćÆ态ęؙęŗ–WebRowSet XMLć‚¹ć‚­ćƒ¼ćƒžå®šē¾©ć«ęŗ–ę‹ ć—ć¾ć™ć€‚ć“ć®å®šē¾©ćÆhttp://java.sun.com/xml/ns/jdbc/webrowset.xsdć§å…„ę‰‹ć§ćć¾ć™ć€‚

č©³ē“°ćÆ态http://www.oracle.com/technetwork/java/javase/jdbc/index.htmlćŠć‚ˆć³javax.sql.rowset.WebRowSetć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®Javadoc (http://download.oracle.com/javase/6/docs/api/javax/sql/rowset/WebRowSet.html)ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


ę³Øꄏ:

WebLogic Server恧ćÆRowSet恫恤恄恦2ć¤ć®ć‚¹ć‚­ćƒ¼ćƒžćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć¾ć™ć€‚1恤ćÆęؙęŗ–WebRowSetē”Ø态悂恆1恤ćÆWLCachedRowSetē”Ø恧恙怂恓悌ćÆ态JSR-114ć®ęœ€ēµ‚ä»•ę§˜ć‚ˆć‚Šå‰ć«å®Ÿč£…ć•ć‚ŒćŸć‚‚ć®ć§ć™ć€‚


ē‰¹ęœ‰ć®ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°äøŠć®č€ƒę…®äŗ‹é …

  • WebLogic恮WebRowSetå®Ÿč£…ć§ćÆ2恤恮XMLć‚¹ć‚­ćƒ¼ćƒž(ćŠć‚ˆć³API)ćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć™ć€‚1恤ćÆęؙęŗ–恮WebRowSetä»•ę§˜ć§(http://java.sun.com/xml/ns/jdbc/webrowset.xsdć§å…„ę‰‹åÆčƒ½)态悂恆1恤ćÆWLCachedRowSetē”Ø恧恙怂恓悌ćÆ态JSR-114ć®ęœ€ēµ‚ä»•ę§˜ć‚ˆć‚Šå‰ć«å®Ÿč£…ć•ć‚ŒćŸć‚‚ć®ć§ć™ć€‚

  • WebLogic Serverč”Œć‚»ćƒƒćƒˆć®ćæ悒ä½æē”Øć—ć¦ć„ć‚‹å “åˆć€ć„ćšć‚Œć‹ć®ć‚¹ć‚­ćƒ¼ćƒžć‚’ä½æē”Øć§ćć¾ć™ć€‚å›ŗęœ‰ć‚¹ć‚­ćƒ¼ćƒžć«ćÆć‚ˆć‚Šå¤šćć®č¦ē“ ć‚æć‚¤ćƒ—ćŒć‚ć‚Šć¾ć™ć€‚

  • 他恮RowSetć®å®Ÿč£…ćØåÆ¾č©±ć™ć‚‹ć«ćÆ态ęؙęŗ–ć®ć‚¹ć‚­ćƒ¼ćƒžć‚’ä½æē”Ø恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

JoinRowSet

JoinRowSetćØćÆ态SQL JOINć«ć‚ˆć£ć¦å˜äø€ć®RowSet恫ēµåˆć•ć‚ŒćŸć€å¤šę•°ć®ęŽ„ē¶šć•ć‚Œć¦ć„ćŖ恄RowSetć‚Ŗ惖ć‚ø悧ć‚Æ惈恧恙怂JoinRowSet恫ćÆ仄äø‹ć®ć‚ˆć†ćŖē‰¹ę€§ćŒć‚ć‚Šć¾ć™ć€‚

  • JoinRowSet恫čæ½åŠ ć•ć‚Œć‚‹å„RowSet恫ćÆ态JoinRowSetćø恮RowSet恮čæ½åŠ ć«ä½æē”Ø恕悌悋addRowSetćƒ”ć‚½ćƒƒćƒ‰ć§ęŒ‡å®šć•ć‚ŒćŸć€Œäø€č‡“ć™ć‚‹ć€åˆ—ćŒć‚ć‚‹ć“ćØ恌åæ…č¦ć§ć™ć€‚ä¾‹:

    addRowSet(javax.sql.RowSet[] rowset,java.lang.String[] columnName);
    
  • setJoinTypećƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态ēµåˆć‚æ悤惗悒čØ­å®šć§ćć¾ć™ć€‚ä»„äø‹ć®ēµåˆć‚æć‚¤ćƒ—ćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć¾ć™ć€‚

    CROSS_JOIN
    FULL_JOIN
    INNER_JOIN
    LEFT_OUTER_JOIN 
    RIGHT_OUTER_JOIN 
    
  • 恓悌悉悒ä½æē”Ø恙悋ćØć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ęŽ„ē¶šć•ć‚Œć¦ć„ćŖćć¦ć‚‚ćƒ‡ćƒ¼ć‚æ悒ēµåˆć§ćć¾ć™ć€‚

  • JoinRowSetsćÆčŖ­å–ć‚Šå°‚ē”Ø怂JoinRowSetćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ćƒ‡ćƒ¼ć‚æć‚’ę›“ę–°ć™ć‚‹ćŸć‚ć«ćÆä½æē”Øć§ćć¾ć›ć‚“ć€‚

  • JoinRowSet恮äø€č‡“ć™ć‚‹åˆ—ćÆ态Number态Boolean态Dateć€ćŠć‚ˆć³String恮4ć¤ć®ćƒ‡ćƒ¼ć‚æåž‹ć«åˆ¶é™ć•ć‚Œć¦ć„ć¾ć™ć€‚č”Ø9-1恫态JoinRowSet恮äø€č‡“ć™ć‚‹åˆ—ć§ä½æē”Øć§ćć‚‹ćƒ‡ćƒ¼ć‚æåž‹ć®č©³ē“°ć«ć¤ć„恦ē¤ŗć—ć¾ć™ć€‚

č”Ø9-1äø€č‡“ć™ć‚‹åˆ—ć§ä½æē”Øć§ćć‚‹ćƒ‡ćƒ¼ć‚æ型

ēµåˆć®å·¦å“ć®ćƒ‡ćƒ¼ć‚æ型ēµåˆć®å³å“恧ä½æē”Øć§ćć‚‹ćƒ‡ćƒ¼ć‚æ型

Number

Number

String

Boolean

Boolean

String

Date

Date

String

String

String

Number

Boolean

Date


JoinRowSetć®č©³ē“°ćÆ态javax.sql.rowset.Joinable (http://download.oracle.com/javase/6/docs/api/javax/sql/rowset/Joinable.html)ćŠć‚ˆć³JoinRowSetć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(http://download.oracle.com/javase/6/docs/api/javax/sql/rowset/JoinRowSet.html)恮Javadocć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

JDBCRowSet

JDBCRowSetćÆResultSetć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ćƒ©ćƒƒćƒ‘ćƒ¼ć§ć€ć“ć‚Œć«ć‚ˆć£ć¦ēµęžœć‚»ćƒƒćƒˆć‚’JavaBeanć‚³ćƒ³ćƒćƒ¼ćƒćƒ³ćƒˆćØ恗恦ä½æē”Øć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚JDBCRowSetćÆ态ꎄē¶šć•ć‚Œć¦ć„ć‚‹RowSetć§ć™ć€‚ć“ć‚Œä»„å¤–ć®ēØ®é”žć®RowSetćÆć™ć¹ć¦ęŽ„ē¶šć•ć‚Œć¦ć„ćŖ恄RowSet恧恙怂

č©³ē“°ćÆ态javax.sql.rowset.JdbcRowSetć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®Javadoc (http://download.oracle.com/javase/6/docs/api/javax/sql/rowset/JdbcRowSet.html)ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

SyncResolver悒ä½æē”Ø恗恟SyncProviderExceptionć®å‡¦ē†

acceptChanges()ć‚’å‘¼ć³å‡ŗ恗恦RowSetć®å¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ä¼ę’­ć™ć‚‹å “åˆć€WebLogic Server恧ćÆRowSetć®å…ƒć®ćƒ‡ćƒ¼ć‚æ(ęœ€å¾Œć®åŒęœŸä»„é™ć®ćƒ‡ćƒ¼ć‚æ)ćŒć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ćƒ‡ćƒ¼ć‚æćØć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ćƒćƒŖć‚·ćƒ¼ć«åŸŗ恄恄恦ęÆ”č¼ƒć•ć‚Œć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æć®å¤‰ę›“ćŒę¤œå‡ŗ恕悌悋ćØ态javax.sql.rowset.spi.SyncProviderExceptionćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć¾ć™ć€‚ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć§ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆä½•ć‚‚č”Œć†åæ…要ćÆć‚ć‚Šć¾ć›ć‚“ćŒć€RowSetć®å¤‰ę›“ćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØåŒęœŸć•ć‚Œć¾ć›ć‚“ć€‚ć“ć†ć—ćŸä¾‹å¤–ć‚’å‡¦ē†ć—ć¦ć‚·ć‚¹ćƒ†ćƒ ć«é©ć—ćŸę–¹ę³•ć§ćƒ‡ćƒ¼ć‚æå¤‰ę›“ć‚’č”Œć†ć‚ˆć†ć«ć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‚’čØ­čØˆć§ćć¾ć™ć€‚


ę³Øꄏ:

javax.sql.rowset.CachedRowSets恫恤恄恦ćÆ态RowSetć®ć™ć¹ć¦ć®č”Œć«ć‚ć‚‹ć™ć¹ć¦ć®å…ƒć®å€¤ćŒć€åƾåæœć™ć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®č”ŒćØęÆ”č¼ƒć•ć‚Œć¾ć™ć€‚weblogic.jdbc.rowset.WLCachedRowSetć€ć¾ćŸćÆ他恮WebLogicę‹”å¼µć®RowSet恧ćÆ态ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ć®čØ­å®šć«åŸŗć„ć„ć¦ćƒ‡ćƒ¼ć‚æ恌ęÆ”č¼ƒć•ć‚Œć¾ć™ć€‚č©³ē“°ć«ć¤ć„恦ćÆ态怌ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ćƒćƒŖć‚·ćƒ¼ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


SyncProviderExceptionć‚’å‡¦ē†ć™ć‚‹äø»ćŖꉋ順ćÆꬔ恮ćØ恊悊恧恙怂

  1. javax.sql.rowset.spi.SyncProviderExceptionć‚’ę•ę‰ć—ć¾ć™ć€‚

  2. ć“ć®ä¾‹å¤–ć‹ć‚‰SyncResolverć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’å–å¾—ć—ć¾ć™ć€‚ć€ŒSyncResolverć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®å–å¾—ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

  3. nextConflict()ć¾ćŸćÆä»»ę„ć®ä»–ć®ē§»å‹•ē”Øćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态ē«¶åˆć¾ć§ē§»å‹•ć—ć¾ć™ć€‚ć€ŒSyncResolverć‚Ŗ惖ć‚ø悧ć‚Æćƒˆå†…ć®ē§»å‹•ć€ć‚’参ē…§ć—ć¦ćć ć•ć„ć€‚

  4. 適切ćŖå€¤ć‚’åˆ¤ę–­ć—ć¦ć€setResolvedValue() (RowSetć«å€¤ć‚’čØ­å®šć™ć‚‹ćƒ”ć‚½ćƒƒćƒ‰)恧čØ­å®šć—ć¾ć™ć€‚ć€ŒRowSetćƒ‡ćƒ¼ć‚æć®åŒęœŸć®ē«¶åˆć«åÆ¾ć™ć‚‹č§£ę±ŗå¾Œć®å€¤ć®čØ­å®šć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

  5. ē«¶åˆć—ć¦ć„ć‚‹å€¤ć”ćØ恫态ꉋ順3ćØ4悒ē¹°ć‚Ščæ”ć—ć¾ć™ć€‚

  6. RowSet恫åÆ¾ć—ć¦(SyncResolver恧ćÆćŖ恏) rowset.acceptChanges()ć‚’å‘¼ć³å‡ŗć—ć€ę–°ć—ć„č§£ę±ŗå¾Œć®å€¤ć‚’ä½æē”Øć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§å¤‰ę›“ć‚’åŒęœŸć—ć¾ć™ć€‚ć€Œå¤‰ę›“ć®åŒęœŸć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

SyncResolverćŠć‚ˆć³SyncProviderExceptionć®č©³ē“°ć«ć¤ć„恦ćÆ态RowSetć®ä»•ę§˜ć¾ćŸćÆSyncResolverć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®Javadocć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


ę³Øꄏ:

SyncProviderExceptionć®č§£ę±ŗć‚’é–‹å§‹ć™ć‚‹å‰ć«ć€ä»–ć®ć©ć®ćƒ—ćƒ­ć‚»ć‚¹ć‚‚ćƒ‡ćƒ¼ć‚æ悒ꛓꖰ恙悋恓ćØ恮ćŖć„ć‚ˆć†ć«ć—ć¾ć™ć€‚


RowSetćƒ‡ćƒ¼ć‚æć®åŒęœŸć«ćŠć‘ć‚‹ē«¶åˆć®ēخ锞

č”Ø9-2恫态RowSetć‹ć‚‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ćƒ‡ćƒ¼ć‚æć®å¤‰ę›“ć‚’åŒęœŸć™ć‚‹éš›ć«čµ·ć“ć‚‹ć€ē«¶åˆēŠ¶ę³ć®ēØ®é”žć«ć¤ć„ć¦ē¤ŗć—ć¾ć™ć€‚

č”Ø9-2 RowSetć®å¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«åŒęœŸć™ć‚‹éš›ć®ē«¶åˆć®ēخ锞

RowSetćƒ‡ćƒ¼ć‚æć®å¤‰ę›“ć®ēØ®é”žćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ćƒ‡ćƒ¼ć‚æć®å¤‰ę›“ć®ēØ®é”žćƒŽćƒ¼ćƒˆ

ꛓꖰ

ꛓꖰ

RowSetćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®åŒć˜č”Œć®å€¤ćŒå¤‰ę›“ć•ć‚Œć¾ć—ćŸć€‚SyncResolverć®ć‚¹ćƒ†ćƒ¼ć‚æć‚¹ćÆSyncResolver.UPDATE_ROW_CONFLICT怂

å “åˆć«ć‚ˆć‚Šć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć€ć“ć®ē«¶åˆć‚’č§£ę±ŗ恙悋惭ć‚ø惃ć‚Æć‚’ęä¾›ć™ć‚‹ć‹ć€ćƒ¦ćƒ¼ć‚¶ćƒ¼ć«ę–°ć—ć„ćƒ‡ćƒ¼ć‚æ悒ꏐē¤ŗ恙悋恓ćØ恌åæ…要恫ćŖć‚Šć¾ć™ć€‚

ꛓꖰ

削除

RowSetć®č”Œć®å€¤ćÆę›“ę–°ć•ć‚ŒćŸćŒć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ćÆćć®č”ŒćŒå‰Šé™¤ć•ć‚Œć¾ć—ćŸć€‚SyncResolverć®ć‚¹ćƒ†ćƒ¼ć‚æć‚¹ćÆSyncResolver.UPDATE_ROW_CONFLICT怂

å “åˆć«ć‚ˆć‚Šć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć€č”Œć‚’å‰Šé™¤ć•ć‚ŒćŸć¾ć¾ć«ć—ć¦ćŠć(ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ēŠ¶ę…‹ć®ć‚ˆć†ć«ć™ć‚‹)ć‹ć€č”Œć‚’å…ƒć«ęˆ»ć—ć¦RowSetć‹ć‚‰ć®å¤‰ę›“ć‚’ę°øē¶šåŒ–恙悋恋悒ę±ŗå®šć™ć‚‹ćƒ­ć‚ø惃ć‚Æć®ęä¾›ćŒåæ…要恫ćŖć‚Šć¾ć™ć€‚

  • č”Œć‚’å‰Šé™¤ć•ć‚ŒćŸć¾ć¾ć«ć™ć‚‹ć«ćÆ态RowSetć®č”Œć®å¤‰ę›“ć‚’å…ƒć«ęˆ»ć—ć¾ć™ć€‚

  • č”Œć‚’å…ƒć«ęˆ»ć—ć¦å¤‰ę›“ć™ć‚‹ć«ćÆ态ē›®ēš„ć®å€¤ć‚’ęŒć¤ę–°ć—ć„č”Œć‚’ęŒæå…„ć—ć¾ć™ć€‚

ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§č”ŒćŒå‰Šé™¤ć•ć‚Œć¦ć„ć‚‹å “åˆć€ē«¶åˆć—ć¦ć„ć‚‹å€¤ćŒćŖ恄恓ćØ恫ę³Øę„ć—ć¾ć™ć€‚getConflictValue()ć‚’å‘¼ć³å‡ŗ恙ćØ态weblogic.jdbc.rowset.RowNotFoundExceptionćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć¾ć™ć€‚

削除

ꛓꖰ

RowSetć®č”ŒćÆå‰Šé™¤ć•ć‚ŒćŸćŒć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ćÆćć®č”ŒćŒę›“ę–°ć•ć‚Œć¾ć—ćŸć€‚SyncResolverć®ć‚¹ćƒ†ćƒ¼ć‚æć‚¹ćÆSyncResolver.DELETE_ROW_CONFLICT怂

å “åˆć«ć‚ˆć‚Šć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć€č”Œć‚’å‰Šé™¤ć™ć‚‹(RowSet恮ēŠ¶ę…‹ć®ć‚ˆć†ć«ć™ć‚‹)ć‹ć€č”Œć‚’äæęŒć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ć®ē¾åœØć®å¤‰ę›“ć‚’ę°øē¶šåŒ–恙悋恋悒ę±ŗå®šć™ć‚‹ćƒ­ć‚ø惃ć‚Æć®ęä¾›ćŒåæ…要恫ćŖć‚Šć¾ć™ć€‚

ć“ć®å “åˆć€č”Œć®ć™ć¹ć¦ć®å€¤ćŒē«¶åˆć—ćŸå€¤ć«ćŖć‚Šć¾ć™ć€‚č”Œć‚’äæęŒć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ē¾åœØć®å€¤ćØ恙悋恫ćÆ态setResolvedValueć‚’å‘¼ć³å‡ŗć—ć¦ć€č”Œć®å„åˆ—ć«č§£ę±ŗå¾Œć®å€¤ć‚’čØ­å®šć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ē¾åœØć®å€¤ć«ć—ć¾ć™ć€‚å‰Šé™¤ć™ć‚‹ć«ćÆ态syncprovider.deleteRow()ć‚’å‘¼ć³å‡ŗć—ć¾ć™ć€‚

削除

削除

RowSetć§č”ŒćŒå‰Šé™¤ć•ć‚Œć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ćÆåˆ„ć®ćƒ—ćƒ­ć‚»ć‚¹ć§ćć®č”ŒćŒå‰Šé™¤ć•ć‚Œć¾ć—ćŸć€‚Syncresolverć®ć‚¹ćƒ†ćƒ¼ć‚æć‚¹ćÆSyncResolver.DELETE_ROW_CONFLICT怂

SyncProviderExceptionć‚’č§£ę±ŗ恙悋恫ćÆ态RowSetć®ćć®č”Œć«åÆ¾ć™ć‚‹å‰Šé™¤å‡¦ē†ć‚’å–ć‚Šę¶ˆć™åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

č”Œć®ć©ć®åˆ—ć«ć‚‚ć€ē«¶åˆć—ć¦ć„ć‚‹å€¤ćŒćŖ恄(null悂ćŖ恄)恓ćØ恫ę³Øę„ć—ć¾ć™ć€‚getConflictValue()ć‚’å‘¼ć³å‡ŗ恙ćØ态weblogic.jdbc.rowset.RowNotFoundExceptionćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć¾ć™ć€‚

ęŒæå…„

ęŒæå…„

RowSetć«č”ŒćŒęŒæå…„ć•ć‚Œć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ć‚‚åˆ„ć®č”ŒćŒęŒæå…„ć•ć‚ŒćŸå “åˆć€äø»ć‚­ćƒ¼ć®ē«¶åˆćŒčµ·ć“悋恓ćØćŒć‚ć‚Šć¾ć™ć€‚ćć®å “åˆSQLä¾‹å¤–ćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć¾ć™ć€‚SyncProviderExceptionćÆć‚¹ćƒ­ćƒ¼ć•ć‚ŒćŖ恄恮恧态恓恮ēØ®é”žć®ē«¶åˆć‚’SyncResolver悒ä½æć£ć¦ē›“ꎄēš„ć«å‡¦ē†ć™ć‚‹ć“ćØćÆć§ćć¾ć›ć‚“ć€‚


SyncResolverć®ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

例9-5恫态RowSetćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®é–“ć§ē«¶åˆć—ć¦ć„ć‚‹å€¤ć‚’SyncResolver悒ä½æć£ć¦č§£ę±ŗć™ć‚‹ę–¹ę³•ć«ć¤ć„ć¦ć®č¦ē“„ć•ć‚ŒćŸć‚µćƒ³ćƒ—ćƒ«ć‚’ē¤ŗć—ć¾ć™ć€‚ć“ć®ć‚µćƒ³ćƒ—ćƒ«ć§ćÆ态ē«¶åˆć®ć‚ć‚‹SyncResolverć®å„č”Œć«ć¤ć„ć¦ć€čŖč­˜ć•ć‚Œć¦ć„ć‚‹åå‰ć‚’ęŒć¤åˆ—ć®å€¤ć‚’ćƒć‚§ćƒƒć‚Æć—ć¾ć™ć€‚ć“ć®ć‚µćƒ³ćƒ—ćƒ«ć®č©³ē“°ć«ć¤ć„恦ćÆć€ć‚µćƒ³ćƒ—ćƒ«ć®å¾Œć®ēÆ€ć§čŖ¬ę˜Žć—ć¾ć™ć€‚

例9-5 SyncResolver恮要ē“„ęøˆćæć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

try {
    rs.acceptChanges();
} catch (SyncProviderException spex) {
    SyncResolver syncresolver = spex.getSyncResolver();
    while (syncresolver.nextConflict())  {
        int status = syncresolver.getStatus();
        int rownum = syncresolver.getRow();
        rs.absolute(rownum);
        //check for null in each column
        //write out the conflict
        //set resolved value to value in the db for this example
        //handle exception for deleted row in the database
        try {
           Object idConflictValue = syncresolver.getConflictValue("ID");
           if (idConflictValue != null)  {
              System.out.println("ID value in db: " + idConflictValue);
              System.out.println("ID value in rowset: " + rs.getInt("ID"));
              syncresolver.setResolvedValue("ID", idConflictValue);
              System.out.println("Set resolved value to " + idConflictValue);
            }
           else {
              System.out.println("ID: NULL - no conflict");
           }
        } catch (RowNotFoundException e)  { 
           System.out.println("An exception was thrown when requesting a ");
          System.out.println("value for ID. This row was ");
          System.out.println("deleted in the database.");
        }
. . .
    }
    try {
        rs.acceptChanges();
    } catch (Exception ignore2) {
        }
}

SyncResolverć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®å–å¾—

SyncProviderExceptionć‚’å‡¦ē†ć™ć‚‹ćŸć‚ć«ć€ä¾‹å¤–ć‚’ę•ę‰ć—ć¦ćć“ć‹ć‚‰SyncResolverć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’å–å¾—ć§ćć¾ć™ć€‚ä¾‹:

try {
   rowset.acceptChanges();
} catch (SyncProviderException spex) {
   SyncResolver syncresolver = spex.getSyncResolver();
. . .
}

SyncResolverćÆ态SyncResolverć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’å®Ÿč£…ć™ć‚‹RowSet恧恙怂SyncResolverć‚Ŗ惖ć‚ø悧ć‚Æ惈恫ćÆć€å…ƒć®RowSetć®ć™ć¹ć¦ć®č”Œć«åƾåæœć™ć‚‹č”ŒćŒå«ć¾ć‚Œć¾ć™ć€‚ē«¶åˆć—恦恄ćŖć„å€¤ć«ć¤ć„ć¦ćÆ态SyncResolverć§ć®å€¤ćÆnull恫ćŖć‚Šć¾ć™ć€‚ē«¶åˆć—ć¦ć„ć‚‹å€¤ć«ć¤ć„ć¦ćÆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ē¾åœØć®å€¤ćŒå€¤ćØć—ć¦ę ¼ē“ć•ć‚Œć¾ć™ć€‚

SyncResolverć‚Ŗ惖ć‚ø悧ć‚Æćƒˆå†…ć®ē§»å‹•

SyncResolverć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Ø恙悋ćØć€ć™ć¹ć¦ć®ē«¶åˆć«ē§»å‹•ć—恦态ē«¶åˆć—ć¦ć„ć‚‹å„å€¤ć«é©åˆ‡ćŖå€¤ć‚’čØ­å®šć§ćć¾ć™ć€‚SyncResolverć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć«ćÆnextConflict()ćƒ”ć‚½ćƒƒćƒ‰ćØpreviousConflict()ćƒ”ć‚½ćƒƒćƒ‰ćŒå«ć¾ć‚Œć¦ćŠć‚Šć€ć“ć‚Œć‚‰ć‚’ä½æē”Ø恗恦nullä»„å¤–ć®ē«¶åˆć—ć¦ć„ć‚‹å€¤ć‚’ęŒć¤SyncResolverå†…ć§ć€ē›“ęŽ„ę¬”ć®č”Œć«ē§»å‹•ć§ćć¾ć™ć€‚SyncResolverć‚Ŗ惖ć‚ø悧ć‚Æ惈ćÆRowSetćŖ恮恧态SyncResolverć®ä»»ę„ć®č”Œćøć®ć‚«ćƒ¼ć‚½ćƒ«ē§»å‹•ć«ćÆć€ć™ć¹ć¦ć®RowSetē§»å‹•ē”Øćƒ”ć‚½ćƒƒćƒ‰ć‚‚ä½æē”Øć§ćć¾ć™ć€‚ćŸć ć—ć€nextConflict()ćƒ”ć‚½ćƒƒćƒ‰ćŠć‚ˆć³previousConflict()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恙悋ćØ态ē«¶åˆć—ć¦ć„ć‚‹å€¤ć®ćŖć„č”Œć‚’ē°”å˜ć«ć‚¹ć‚­ćƒƒćƒ—ć§ćć¾ć™ć€‚

ē«¶åˆć—ć¦ć„ć‚‹č”Œć«ć‚«ćƒ¼ć‚½ćƒ«ć‚’ē§»å‹•ć—ćŸå¾Œć«ćÆć€å„åˆ—ć®å€¤ć‚’getConflictValue()ćƒ”ć‚½ćƒƒćƒ‰ć§ćƒć‚§ćƒƒć‚Æ恗恦态RowSetå†…ć®å€¤ćØē«¶åˆć—ć¦ć„ć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹å†…ć®å€¤ć‚’ę¤œē“¢ć—ć¦ć‹ć‚‰ć€ćć‚Œć‚‰ć®å€¤ć‚’ęÆ”č¼ƒć—ć¦ē«¶åˆć®å‡¦ē†ę–¹ę³•ć‚’ę±ŗå®šć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚å€¤ćŒē«¶åˆć—恦恄ćŖć„č”Œć®å “åˆć€ęˆ»ć‚Šå€¤ćØ恗恦null恌čæ”ć•ć‚Œć¾ć™ć€‚č”ŒćŒćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ćÆå‰Šé™¤ć•ć‚Œć¦ć„ćŸå “åˆć€ęˆ»ć‚Šå€¤ćÆćŖćć€ä¾‹å¤–ćŒć‚¹ćƒ­ćƒ¼ć•ć‚Œć¾ć™ć€‚


ę³Øꄏ:

WebLogic恮RowSetå®Ÿč£…ć§ćÆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®č”Œć®ä»»ę„ć®å€¤ćØ态RowSetć®ä½œęˆę™‚ć¾ćŸćÆęœ€å¾Œć®åŒęœŸę™‚ć«RowSet恫čŖ­ćæč¾¼ć¾ć‚ŒćŸå€¤ćŒē•°ćŖć‚‹å “åˆć€å€¤ć®ē«¶åˆćŒē™ŗē”Ÿć—ć¾ć™ć€‚


RowSetćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®å€¤ć‚’ęÆ”č¼ƒć™ć‚‹ć‚³ćƒ¼ćƒ‰ć®ć‚µćƒ³ćƒ—ćƒ«ć‚’ä»„äø‹ć«ē¤ŗć—ć¾ć™ć€‚

syncresolver.nextConflict()
for (int i = 1; i <= colCount; i++) {
   if (syncresolver.getConflictValue(i) != null)  {
      rsValue = rs.getObject(i);
      resolverValue = syncresolver.getConflictValue(i);
      . . . 
     // compare values in the rowset and SyncResolver to determine
     // which should be the resolved value (the value to persist)
   } 
} 

RowSetćƒ‡ćƒ¼ć‚æć®åŒęœŸć®ē«¶åˆć«åÆ¾ć™ć‚‹č§£ę±ŗå¾Œć®å€¤ć®čح定

ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ę°øē¶šåŒ–ć™ć‚‹ćŸć‚ć®é©åˆ‡ćŖå€¤ć‚’čØ­å®šć™ć‚‹ć«ćÆ态setResolvedValue()ć‚’å‘¼ć³å‡ŗć—ć¾ć™ć€‚ä¾‹:

syncresolver.setResolvedValue(i, resolvedValue);

setResolvedValue()ćƒ”ć‚½ćƒƒćƒ‰ć§ćÆ仄äø‹ć®å¤‰ę›“ćŒč”Œć‚ć‚Œć¾ć™ć€‚

  • ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ę°øē¶šåŒ–ć™ć‚‹ćŸć‚ć®å€¤ć‚’čØ­å®šć—ć¾ć™ć€‚ć¤ć¾ć‚Šć€RowSet恮ē¾åœØć®å€¤ć‚’čØ­å®šć—ć¾ć™ć€‚å¤‰ę›“ćŒåŒęœŸć•ć‚Œć‚‹ćØć€ć“ć®ę–°ć—ć„å€¤ćŒćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ę°øē¶šåŒ–ć•ć‚Œć¾ć™ć€‚

  • RowSetć®ćƒ‡ćƒ¼ć‚æć®å…ƒć®å€¤ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ē¾åœØć®å€¤ć«å¤‰ę›“ć—ć¾ć™ć€‚å…ƒć®å€¤ćØćÆć€ęœ€å¾Œć®åŒęœŸä»„é™ć«čØ­å®šć•ć‚Œć¦ć„ćŸå€¤ć§ć™ć€‚setResolvedValue()ć‚’å‘¼ć³å‡ŗ恙ćØć€å…ƒć®å€¤ćŒćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ē¾åœØć®å€¤ć«ćŖć‚Šć¾ć™ć€‚

  • åŒęœŸć®å‘¼å‡ŗ恗恫恊恑悋WHEREå„ć‚’ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®é©åˆ‡ćŖč”ŒćŒę›“ę–°ć•ć‚Œć‚‹ć‚ˆć†ć«å¤‰ę›“ć—ć¾ć™ć€‚

å¤‰ę›“ć®åŒęœŸ

SyncResolver恧ē«¶åˆć—ć¦ć„ć‚‹å€¤ć‚’č§£ę±ŗć—ćŸå¾Œć«ćÆć€å¤‰ę›“ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ć“ć‚Œć‚’č”Œć†ć«ćÆ态rowset.acceptChanges()悒悂恆äø€åŗ¦å‘¼ć³å‡ŗć—ć¾ć™ć€‚acceptChanges()呼å‡ŗ恗恧ćÆSyncResolverć‚Ŗ惖ć‚ø悧ć‚Æ惈恌ć‚Æćƒ­ćƒ¼ć‚ŗć•ć‚Œć€åŒęœŸć®å®Œäŗ†å¾Œć«ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ćƒ­ćƒƒć‚ÆćŒč§£ę”¾ć•ć‚Œć¾ć™ć€‚

WLCachedRowSet

WLCachedRowSetćÆCachedRowSets态FilteredRowSets态WebRowSetsć€ćŠć‚ˆć³SortedRowSetsć®ę‹”å¼µć§ć™ć€‚WLCachedRowSet恫ćÆ仄äø‹ć®ć‚ˆć†ćŖē‰¹ę€§ćŒć‚ć‚Šć¾ć™ć€‚

  • WebLogic Server恮RowSetå®Ÿč£…ć§ćÆć€ć™ć¹ć¦ć®RowSetćŒå…ƒćÆWLCachedRowsetćØć—ć¦ä½œęˆć•ć‚Œć¾ć™ć€‚WLCachedRowSetćÆć€ćć‚Œć‚’ę‹”å¼µć™ć‚‹ć‚ć‚‰ć‚†ć‚‹ęؙęŗ–RowSet型ćØ恗恦äŗ’ę›ēš„恫ä½æē”Øć§ćć¾ć™ć€‚

  • WLCachedRowSet恫ćÆ态RowSet悒悈悊ē°”å˜ć«ę‰±ćˆć‚‹ć‚ˆć†ć«ć™ć‚‹ä¾æ利ćŖćƒ”ć‚½ćƒƒćƒ‰ē¾¤ćŒć‚ć‚Šć€ć¾ćŸć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ćØćƒ‡ćƒ¼ć‚æåŒęœŸåŒ–ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć‚’čØ­å®šć™ć‚‹ćƒ”ć‚½ćƒƒćƒ‰ē¾¤ć‚‚å«ć¾ć‚Œć¦ć„ć¾ć™ć€‚

  • SQLXMLćƒ‡ćƒ¼ć‚æ型ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒čŖ­ćæå–ć£ćŸć‚Šę›“ę–°ć—ćŸć‚Šć™ć‚‹ć“ćØćÆ恧恍ćŖć„å “åˆćŒć‚ć‚Šć¾ć™ć€‚JDBC 4.0ä»•ę§˜ć§ćÆć€ćƒ™ćƒ³ćƒ€ćƒ¼ćŒSQLXMLć‚Ŗ惖ć‚ø悧ć‚Æ惈悒čØ­å®šå¾Œć«ć“ć‚Œć‚’čŖ­å–ć‚ŠåÆčƒ½ć«ć™ć‚‹åæ…要ćÆćŖ恄ćØć—ć¦ć„ć¾ć™ć€‚WebLogic Server恌SQLXMLćƒ‡ćƒ¼ć‚æ型ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«å€¤ć‚’čØ­å®šć—ćŸć‚‰ć€ć“ć®ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒čŖ­ćæå–ć£ćŸć‚Šę›“ę–°ć—ćŸć‚Šć§ććŖ恏ćŖć‚Šć¾ć™ć€‚

č©³ē“°ć«ć¤ć„恦ćÆ态weblogic.jdbc.rowset.WLCachedRowSetć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®Javadocć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

SharedRowSet

RowSetćÆ1ć¤ć®ć‚¹ćƒ¬ćƒƒćƒ‰ć§ć®ćæä½æē”Øć§ćć¾ć™ć€‚č¤‡ę•°ć®ć‚¹ćƒ¬ćƒƒćƒ‰ć§å…±ęœ‰ć™ć‚‹ć“ćØćÆć§ćć¾ć›ć‚“ć€‚SharedRowSetćÆCachedRowSetć‚’ę‹”å¼µć—ćŸć‚‚ć®ć§ć€å…ƒć®CachedRowSetć®ćƒ‡ćƒ¼ć‚æ恫åŸŗć„ć„ć¦ć€ä»–ć®ć‚¹ćƒ¬ćƒƒćƒ‰ć§ä½æē”Ø恙悋CachedRowSet悒čæ½åŠ ä½œęˆć§ćć¾ć™ć€‚SharedRowSet恫ćÆ仄äø‹ć®ć‚ˆć†ćŖē‰¹ę€§ćŒć‚ć‚Šć¾ć™ć€‚

  • 各SharedRowSetćÆć€å…ƒć®RowSet恮č”Ø層ēš„ćŖć‚³ćƒ”ćƒ¼(ćƒ‡ćƒ¼ć‚æć®ć‚³ćƒ”ćƒ¼ć§ćÆćŖćć€å…ƒć®RowSetć®ćƒ‡ćƒ¼ć‚æćøć®å‚ē…§)恧态ē‹¬č‡Ŗć®ć‚³ćƒ³ćƒ†ć‚­ć‚¹ćƒˆ(ć‚«ćƒ¼ć‚½ćƒ«ć€ćƒ•ć‚£ćƒ«ć‚æć€ć‚½ćƒ¼ć‚æćƒ¼ć€äæē•™äø­ć®å¤‰ę›“ć€ćŠć‚ˆć³åŒęœŸćƒ—ćƒ­ćƒć‚¤ćƒ€)ć‚’å‚™ćˆć¦ć„ć¾ć™ć€‚

  • ä»»ę„ć®SharedRowSetć§č”Œć‚ć‚ŒćŸćƒ‡ćƒ¼ć‚æć®å¤‰ę›“ćŒćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć®é–“ć§åŒęœŸć•ć‚Œć‚‹ćØ态åŸŗåŗ•ć®CachedRowSetć‚‚ę›“ę–°ć•ć‚Œć¾ć™ć€‚

  • SharedRowSet悒ä½æē”Ø恙悋ćØć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§åæ…要ćØć™ć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćøć®å¾€å¾©å›žę•°ćŒęø›ć‚‹ćŸć‚ć€ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćŒå‘äøŠć™ć‚‹åÆčƒ½ę€§ćŒć‚ć‚Šć¾ć™ć€‚

SharedRowSetć‚’ä½œęˆć™ć‚‹ć«ćÆ态WLCachedRowSetć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®createShared()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¦ć€ćć®ēµęžœć‚’WLCachedRowSetåž‹ć«ć‚­ćƒ£ć‚¹ćƒˆć—ć¾ć™ć€‚ä¾‹:

WLCachedRowSet sharedrowset = (WLCachedRowSet)rowset.createShared();

SortedRowSet

SortedRowSetćÆCachedRowSetć‚’ę‹”å¼µć—ć¦ć€CachedRowSetć®č”Œć‚’ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ęä¾›ć•ć‚Œć‚‹Comparatorć‚Ŗ惖ć‚ø悧ć‚Æ惈恫åŸŗć„ć„ć¦ć‚½ćƒ¼ćƒˆć§ćć‚‹ć‚ˆć†ć«ć—ćŸć‚‚ć®ć§ć™ć€‚SortedRowSet恫ćÆ仄äø‹ć®ć‚ˆć†ćŖē‰¹ę€§ćŒć‚ć‚Šć¾ć™ć€‚

  • ć‚½ćƒ¼ćƒˆå‡¦ē†ć®čØ­å®šę–¹ę³•ćÆ态FilteredRowSetć§ć®ćƒ•ć‚£ćƒ«ć‚æ処ē†ć®čØ­å®šę–¹ę³•ćØåŒę§˜ć€‚ćŸć ć—ć€ć‚½ćƒ¼ćƒˆå‡¦ē†ćÆjavax.sql.rowset.Predicateć‚Ŗ惖ć‚ø悧ć‚Æ惈恧ćÆćŖ恏java.util.Comparatorć‚Ŗ惖ć‚ø悧ć‚Æ惈恫åŸŗć„ćć¾ć™ć€‚

    1. ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć€ē›®ēš„ć®ć‚½ćƒ¼ćƒˆå‹•ä½œć‚’č”Œć†Comparatorć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć—ć¾ć™ć€‚

    2. ē¶šć„ć¦ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§setSorter(java.util.Comparator)ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¦ć‚½ćƒ¼ćƒˆę”ä»¶ć‚’čØ­å®šć—ć¾ć™ć€‚

  • ć‚½ćƒ¼ćƒˆå‡¦ē†ćÆćƒ”ćƒ¢ćƒŖćƒ¼å†…ć§č”Œć‚ć‚Œć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ē®”ē†ć‚·ć‚¹ćƒ†ćƒ ć«ćÆä¾å­˜ć—ć¾ć›ć‚“ć€‚SortedRowSet悒ä½æē”Ø恙悋恓ćØć«ć‚ˆć‚Šćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćøć®å¾€å¾©å›žę•°ćŒęø›ć‚‹ćŸć‚ć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćŒå‘äøŠć™ć‚‹åÆčƒ½ę€§ćŒć‚ć‚Šć¾ć™ć€‚

  • WebLogic Server恫ćÆjava.util.Comparatorć‚’å®Ÿč£…ć™ć‚‹SQLComparatorć‚Ŗ惖ć‚ø悧ć‚ÆćFM¹²ƒˆćŒē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć‚Œć‚’ä½æē”Øć—ć¦ć€ć‚½ćƒ¼ćƒˆę”ä»¶ćØ恗恦ä½æć†åˆ—ć®ćƒŖć‚¹ćƒˆć‚’ęø”恙恓ćØ恧态SortedRowSetć®č”Œć‚’ć‚½ćƒ¼ćƒˆć§ćć¾ć™ć€‚ä¾‹:

    rs.setSorter(new weblogic.jdbc.rowset.SQLComparator("columnA,columnB,columnC"));
    

č©³ē“°ć«ć¤ć„恦ćÆ态Javadocs恧仄äø‹ć«ć¤ć„ć¦å‚ē…§ć—ć¦ćć ć•ć„ć€‚

SQLPredicate态SQLę–¹å¼ć®RowSetćƒ•ć‚£ćƒ«ć‚æ

恓恓恧ćÆ态SQLPredicateć‚Æćƒ©ć‚¹ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚

SQLPredicatećØćÆ

Weblogic Server恫ćÆjavax.sql.rowset.Predicateć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®å®Ÿč£…ć§ć‚ć‚‹weblogic.jdbc.rowset.SQLPredicateć‚Æćƒ©ć‚¹ćŒē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚SQLPredicateć‚Æćƒ©ć‚¹ć‚’ä½æē”Ø恙悋ćØ态SQLć®ć‚ˆć†ćŖWHEREå„ć®ę§‹ę–‡ć‚’ä½æē”Ø恗恦FilteredRowSetć®ćƒ•ć‚£ćƒ«ć‚æć‚’å®šē¾©ć§ćć¾ć™ć€‚

SQLPredicateć®ę–‡ę³•

SQLPredicateć‚Æćƒ©ć‚¹ć®ę–‡ę³•ćÆJMSć‚»ćƒ¬ć‚Æć‚æć®ę–‡ę³•ć‹ć‚‰å€Ÿē”Øć•ć‚ŒćŸć‚‚ć®ć§ć€SQL SELECTꖇ恮WHEREå„ć®ę–‡ę³•ćØć‚ˆćä¼¼ć¦ć„ć¾ć™ć€‚

é‡č¦ćŖę³Øꄏäŗ‹é …悒仄äø‹ć«ē¤ŗć—ć¾ć™ć€‚

  • åˆ—ć‚’å‚ē…§ć™ć‚‹å “åˆć€åˆ—åć‚’ä½æē”Ø恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚åˆ—ć®ē“¢å¼•ē•Ŗ号ćÆä½æē”Øć§ćć¾ć›ć‚“ć€‚

  • ć“ć®ę–‡ę³•ć§ćÆć€ę¼”ē®—å­ćŠć‚ˆć³ę•°å­¦ę¼”ē®—ćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć™ć€‚ćŸćØćˆć°ę¬”ć®ć‚ˆć†ćŖ恓ćØćŒć§ćć¾ć™ć€‚

     (colA + ColB) >=100.
    
  • WHEREå„ć®ä½œęˆć§ćÆć€å˜ē“”ćŖćƒ‡ćƒ¼ć‚æåž‹ć®ćæ悒ä½æē”Øć§ćć¾ć™ć€‚ä»„äø‹ć®ć‚ˆć†ćŖćƒ‡ćƒ¼ć‚æåž‹ć‚’ä½æē”Øć§ćć¾ć™ć€‚

    • String

    • Int

    • Boolean

    • Float

  • 仄äø‹ć®ć‚ˆć†ćŖč¤‡åˆćƒ‡ćƒ¼ć‚æ型ćÆć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć›ć‚“ć€‚

    • Array

    • BLOB

    • CLOB

    • Date

ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

//S E T   F I L T E R
//use SQLPredicate class to create a SQLPredicate object,
//then pass the object in the setFilter method to filter the RowSet. 
SQLPredicate filter = new SQLPredicate("ID >= 103");
rs.setFilter(filter);

č©³ē“°ć«ć¤ć„恦ćÆ态weblogic.jdbc.rowset.SQLPredicateć‚Æćƒ©ć‚¹ć®Javadocć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ćƒćƒŖć‚·ćƒ¼

恻ćØć‚“ć©ć®å “åˆć€RowSetćøć®ćƒ‡ćƒ¼ć‚æć®å…„åŠ›ćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ę›“ę–°ćÆåˆ„ć€…ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć§ē™ŗē”Ÿć—ć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹å†…ć®åŸŗåŗ•ć®ćƒ‡ćƒ¼ć‚æćÆ2ć¤ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć®é–“ć«å¤‰ę›“ć•ć‚Œć‚‹åÆčƒ½ę€§ćŒć‚ć‚Šć¾ć™ć€‚WebLogic Server恮RowSetå®Ÿč£…(WLCachedRowSet)恧ćÆ态ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§åˆ¶å¾”ć‚’ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®äø€č²«ę€§ć‚’ē¢ŗäæć—ć¾ć™ć€‚

ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ć®å “åˆć€RowSetćÆč¤‡ę•°ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼ćŒåŒć˜ćƒ‡ćƒ¼ć‚æć‚’åŒę™‚ć«å¤‰ę›“ć™ć‚‹åÆčƒ½ę€§ćÆä½Žć„ćØć„ć†å‰ęć§å‹•ä½œć—ć¾ć™ć€‚ćć®ćŸć‚ć€ęŽ„ē¶šć•ć‚Œć¦ć„ćŖ恄RowSetćƒ¢ćƒ‡ćƒ«ć®äø€ē«ÆćØ恗恦态RowSet恧ćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ćƒŖć‚½ćƒ¼ć‚¹ćŒćƒ­ćƒƒć‚Æć•ć‚Œć¾ć›ć‚“ć€‚ćŸć ć—ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«å¤‰ę›“ć‚’ę›øćč¾¼ć‚€å‰ć«ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹å†…ć®å¤‰ę›“äŗˆå®šć®ćƒ‡ćƒ¼ć‚æćŒć€ćć®ćƒ‡ćƒ¼ć‚æ恌RowSet恫čŖ­ćæč¾¼ć¾ć‚ŒćŸćØćć‹ć‚‰å¤‰ę›“ć•ć‚Œć¦ć„ćŖ恄恓ćØ悒RowSet恧惁悧惃ć‚Æ恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

RowSet恋悉ē™ŗč”Œć•ć‚Œć‚‹UPDATEꖇćØDELETEꖇ恫ćÆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹å†…ć®ćƒ‡ćƒ¼ć‚æ悒态RowSetć®å…„åŠ›ę™‚ć«čŖ­ćæč¾¼ć¾ć‚ŒćŸćƒ‡ćƒ¼ć‚æ恫ē…§ć‚‰ć—ć¦ę¤œčØ¼ć™ć‚‹ćŸć‚ć®WHEREå„ćŒå«ć¾ć‚Œć¾ć™ć€‚RowSet恧ćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹å†…ć®åŸŗåŗ•ć®ćƒ‡ćƒ¼ć‚æćŒå¤‰ę›“ć•ć‚ŒćŸć“ćØ恌ꤜå‡ŗ恕悌悋ćØOptimisticConflictException恌ē™ŗč”Œć•ć‚Œć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆć“ć®ä¾‹å¤–ć‚’ę•ę‰ć—ć¦å‡¦ē†ę–¹ę³•ć‚’ę±ŗå®šć§ćć¾ć™ć€‚äø€čˆ¬ēš„恫ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć€å¤‰ę›“ć•ć‚ŒćŸćƒ‡ćƒ¼ć‚æ悒ćƒŖćƒ•ćƒ¬ćƒƒć‚·ćƒ„ć—ć¦ćƒ¦ćƒ¼ć‚¶ćƒ¼ć«å†åŗ¦ęē¤ŗć—ć¾ć™ć€‚

WLCachedRowSetå®Ÿč£…ć«ćÆ複ꕰ恮ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ćƒćƒŖć‚·ćƒ¼ćŒē”Øę„ć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć‚Œć‚‰ć®ćƒćƒŖć‚·ćƒ¼ć«ć‚ˆć£ć¦ć€åŸŗåŗ•ć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ćƒ‡ćƒ¼ć‚æ悒ꤜčØ¼ć™ć‚‹ćŸć‚ć«RowSet恋悉ē™ŗč”Œć•ć‚Œć‚‹SQL恌ę±ŗć¾ć‚Šć¾ć™ć€‚

  • VERIFY_READ_COLUMNS

  • VERIFY_MODIFIED_COLUMNS

  • VERIFY_SELECTED_COLUMNS

  • VERIFY_NONE

  • VERIFY_AUTO_VERSION_COLUMNS

  • VERIFY_VERSION_COLUMNS

ć“ć‚Œć‚‰ć®ćƒćƒŖć‚·ćƒ¼ć®é•ć„ć‚’ä¾‹ē¤ŗć™ć‚‹ćŸć‚ć«ć€ä»„äø‹ć®ć‚ˆć†ćŖå†…å®¹ć®ä¾‹ć‚’ä½æē”Øć—ć¾ć™ć€‚

  • 3ć¤ć®åˆ—ćŒć‚ć‚‹ē°”単ćŖå¾“ę„­å“”č”Ø

    CREATE TABLE employees (
      e_id integer primary key,
      e_salary integer,
      e_name varchar(25)
    );
    
  • č”Øå†…ć®1ć¤ć®č”Œ

    e_id = 1, e_salary = 10000, and e_name = 'John Smith'
    

仄äø‹ć«ē¤ŗ恙ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ćƒćƒŖć‚·ćƒ¼ć®ćć‚Œćžć‚Œć®ä¾‹ć§ćÆ态RowSetć«å¾“ę„­å“”č”Øć‹ć‚‰ć“ć®č”ŒćŒčŖ­ćæč¾¼ć¾ć‚Œć€John Smith恮ēµ¦äøŽćŒ20000恫čØ­å®šć•ć‚Œć¾ć™ć€‚ē¶šć„恦态ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§ćƒćƒŖć‚·ćƒ¼ćŒRowSet恋悉ē™ŗč”Œć•ć‚Œć‚‹SQLć‚³ćƒ¼ćƒ‰ć«ć©ć®ć‚ˆć†ć«å½±éŸæ恙悋恋恌ē¤ŗć•ć‚Œć¾ć™ć€‚

VERIFY_READ_COLUMNS

ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć§ćÆ态RowSet恮ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§åˆ¶å¾”ćƒćƒŖć‚·ćƒ¼ćÆVERIFY_READ_COLUMNS恧恙怂RowSet恋悉UPDATEć¾ćŸćÆDELETE恌ē™ŗč”Œć•ć‚Œć‚‹ćØćć«ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰čŖ­ćæč¾¼ć¾ć‚ŒćŸć™ć¹ć¦ć®åˆ—ćŒWHEREå„ć«å«ć¾ć‚Œć¾ć™ć€‚ć“ć‚Œć«ć‚ˆć£ć¦ć€RowSetć«ęœ€åˆć«čŖ­ćæč¾¼ć¾ć‚ŒćŸć™ć¹ć¦ć®åˆ—ć®å€¤ć«ć¤ć„ć¦å¤‰ę›“ć•ć‚Œć¦ćŖć„ć‹ć©ć†ć‹ćŒę¤œčØ¼ć•ć‚Œć¾ć™ć€‚

ć“ć®ä¾‹ć§ćÆ态RowSetć‹ć‚‰ę¬”ć®ć‚ˆć†ć«ē™ŗč”Œć•ć‚Œć¾ć™ć€‚

UPDATE employees SET e_salary = 20000 
   WHERE e_id = 1 AND e_salary=10000 AND e_name = 'John Smith';

VERIFY_MODIFIED_COLUMNS

VERIFY_MODIFIED_COLUMNS惝ćƒŖć‚·ćƒ¼ć§ćÆ态äø»ć‚­ćƒ¼åˆ—ćØę›“ę–°ć•ć‚Œć‚‹åˆ—ć®ćæ恌WHEREå„ć«å«ć¾ć‚Œć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ę›“ę–°ć•ć‚Œć‚‹åˆ—ć®äø€č²«ę€§ć ć‘ć‚’č€ƒę…®ć™ć‚‹å “åˆć«ä¾æåˆ©ć§ć™ć€‚ćƒ‡ćƒ¼ć‚æ悒čŖ­ćæč¾¼ć‚“ć å¾Œć«ę›“ę–°ć®åÆ¾č±”å¤–ć®åˆ—ćŒå¤‰ę›“ć•ć‚Œć¦ć„ć¦ć‚‚ć€ć“ć®ę›“ę–°ć‚’ć‚³ćƒŸćƒƒćƒˆć§ćć¾ć™ć€‚

ć“ć®ä¾‹ć§ćÆ态RowSetć‹ć‚‰ę¬”ć®ć‚ˆć†ć«ē™ŗč”Œć•ć‚Œć¾ć™ć€‚

UPDATE employees SET e_salary = 20000 
   WHERE e_id = 1 AND e_salary=10000 

e_id列ćÆäø»ć‚­ćƒ¼åˆ—ćŖć®ć§å«ć¾ć‚Œć¦ć„ć¾ć™ć€‚e_salary列ćÆę›“ę–°ć•ć‚Œć‚‹åˆ—ćŖć®ć§ć€åŒę§˜ć«å«ć¾ć‚Œć¦ć„ć¾ć™ć€‚e_name列ćÆčŖ­ćæč¾¼ć¾ć‚ŒćŸć ć‘ćŖć®ć§ć€ę¤œčØ¼ć•ć‚Œć¾ć›ć‚“ć€‚

VERIFY_SELECTED_COLUMNS

VERIFY_SELECTED_COLUMNS恧ćÆ态äø»ć‚­ćƒ¼åˆ—ćØęŒ‡å®šć™ć‚‹åˆ—ćŒWHEREå„ć«å«ć¾ć‚Œć¾ć™ć€‚

WLRowSetMetaData metaData = (WLRowSetMetaData) rowSet.getMetaData();
metaData.setOptimisticPolicy(WLRowSetMetaData.VERIFY_SELECTED_COLUMNS);
// Only verify the e_salary column
metaData.setVerifySelectedColumn("e_salary", true);

metaData.acceptChanges();

ć“ć®ä¾‹ć§ćÆ态RowSetć‹ć‚‰ę¬”ć®ć‚ˆć†ć«ē™ŗč”Œć•ć‚Œć¾ć™ć€‚

UPDATE employees SET e_salary = 20000 
   WHERE e_id = 1 AND e_salary=10000 

e_id列ćÆäø»ć‚­ćƒ¼åˆ—ćŖć®ć§å«ć¾ć‚Œć¦ć„ć¾ć™ć€‚e_salary列ćÆéøęŠžć•ć‚ŒćŸåˆ—ćŖć®ć§ć€åŒę§˜ć«å«ć¾ć‚Œć¦ć„ć¾ć™ć€‚

VERIFY_NONE

VERIFY_NONE惝ćƒŖć‚·ćƒ¼ć§ćÆ态äø»ć‚­ćƒ¼åˆ—恮ćæ恌WHEREå„ć«å«ć¾ć‚Œć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ćƒ‡ćƒ¼ć‚æ恫åÆ¾ć—ć¦čæ½åŠ ć§ę¤œčؼćÆč”Œć‚ć‚Œć¾ć›ć‚“ć€‚

ć“ć®ä¾‹ć§ćÆ态RowSetć‹ć‚‰ę¬”ć®ć‚ˆć†ć«ē™ŗč”Œć•ć‚Œć¾ć™ć€‚

UPDATE employees SET e_salary = 20000 WHERE e_id = 1

VERIFY_AUTO_VERSION_COLUMNS

VERIFY_AUTO_VERSION_COLUMNS恧ćÆ态äø»ć‚­ćƒ¼åˆ—ćØć€åˆ„å€‹ć®ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ćŒWHEREå„ć«å«ć¾ć‚Œć¾ć™ć€‚RowSet恧ćÆꛓꖰ恮äø€ē’°ćØć—ć¦ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ć®č‡Ŗ動ēš„ćŖć‚¤ćƒ³ć‚ÆćƒŖćƒ”ćƒ³ćƒˆć‚‚č”Œć‚ć‚Œć¾ć™ć€‚ć“ć®ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ć®ćƒ‡ćƒ¼ć‚æ型ćÆinteger恧ćŖ恑悌恰ćŖć‚Šć¾ć›ć‚“ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚¹ć‚­ćƒ¼ćƒžć‚’ę›“ę–°ć—ć¦ć€åˆ„å€‹ć®ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—(e_version)ć‚’å«ć‚ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ä¾‹ć§ćÆć€ć“ć®åˆ—ć®ē¾åœØć®å€¤ćŒ1恧恂悋ćØä»®å®šć—ć¾ć™ć€‚

metaData.setOptimisticPolicy(WLRowSetMetaData.
   VERIFY_AUTO_VERSION_COLUMNS);

metaData.setAutoVersionColumn("e_version", true);

metaData.acceptChanges();

ć“ć®ä¾‹ć§ćÆ态RowSetć‹ć‚‰ę¬”ć®ć‚ˆć†ć«ē™ŗč”Œć•ć‚Œć¾ć™ć€‚

UPDATE employees SET e_salary = 20000, e_version = 2
WHERE e_id = 1 AND e_version = 1

e_version列ćÆSETå„ć§č‡Ŗ動ēš„ć«ć‚¤ćƒ³ć‚ÆćƒŖćƒ”ćƒ³ćƒˆć•ć‚Œć¾ć™ć€‚WHERE叄ćÆäø»ć‚­ćƒ¼åˆ—ćØćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ć‚’ę¤œčØ¼ć—ć¦ć„ć¾ć™ć€‚

VERIFY_VERSION_COLUMNS

VERIFY_VERSION_COLUMNSć®å “åˆć€RowSet恧ćÆäø»ć‚­ćƒ¼åˆ—ćØć€åˆ„å€‹ć®ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ćŒćƒć‚§ćƒƒć‚Æć•ć‚Œć¾ć™ć€‚RowSet恧ćÆꛓꖰ恮äø€ē’°ćØć—ć¦ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ćÆć‚¤ćƒ³ć‚ÆćƒŖćƒ”ćƒ³ćƒˆć•ć‚Œć¾ć›ć‚“ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚¹ć‚­ćƒ¼ćƒžć‚’ę›“ę–°ć—ć¦ć€åˆ„å€‹ć®ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—(e_version)ć‚’å«ć‚ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ä¾‹ć§ćÆć€ć“ć®åˆ—ć®ē¾åœØć®å€¤ćŒ1恧恂悋ćØä»®å®šć—ć¾ć™ć€‚

metaData.setOptimisticPolicy(WLRowSetMetaData.VERIFY_VERSION_COLUMNS);
metaData.setVersionColumn("e_version", true);
metaData.acceptChanges();

ć“ć®ä¾‹ć§ćÆ态RowSetć‹ć‚‰ę¬”ć®ć‚ˆć†ć«ē™ŗč”Œć•ć‚Œć¾ć™ć€‚

UPDATE employees SET e_salary = 20000
WHERE e_id = 1 AND e_version = 1

WHEREå„ć§ćÆäø»ć‚­ćƒ¼åˆ—ćØćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ćŒę¤œčØ¼ć•ć‚Œć¾ć™ć€‚RowSetć§ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ćŒć‚¤ćƒ³ć‚ÆćƒŖćƒ”ćƒ³ćƒˆć•ć‚ŒćŖć„ćŸć‚ć€ć“ć®å‡¦ē†ćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§č”Œć†åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚äø€éƒØć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ćÆć€č”Œć®ę›“ę–°ę™‚ć«č‡Ŗ動ēš„ć«ć‚¤ćƒ³ć‚ÆćƒŖćƒ”ćƒ³ćƒˆć™ć‚‹ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ć‚’ęä¾›ć—ć¦ć„ć¾ć™ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ćƒˆćƒŖć‚¬ćƒ¼ć‚’ä½æē”Ø恗恦恓恮ć‚æć‚¤ćƒ—ć®ę›“ę–°ć‚’å‡¦ē†ć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚

ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§åˆ¶å¾”ć®åˆ¶é™

ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖ惝ćƒŖć‚·ćƒ¼ć§ćÆć€å¤‰ę›“ć™ć‚‹č”Œć«åÆ¾ć™ć‚‹UPDATEꖇćØDELETEꖇ恮ćæ恌ꤜčØ¼ć•ć‚Œć¾ć™ć€‚čŖ­å–ć‚Šå°‚ē”Øć®č”ŒćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ē…§ć‚‰ć—ć¦ę¤œčØ¼ć•ć‚Œć¾ć›ć‚“ć€‚

恻ćØć‚“ć©ć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ćÆWHEREå„ć§ć®BLOBć¾ćŸćÆCLOBåˆ—ć®ä½æē”Ø恌čرåÆć•ć‚Œć¦ć„ćŖ恄恟悁态RowSet恧ćÆBLOBć¾ćŸćÆCLOBåˆ—ć®ę¤œčؼćÆć§ćć¾ć›ć‚“ć€‚

RowSet恫複ꕰ恮č”ØćŒå«ć¾ć‚Œć‚‹å “åˆć€RowSet恧ćÆę›“ę–°ć•ć‚ŒćŸč”Ø恮ćæ恌ꤜčØ¼ć•ć‚Œć¾ć™ć€‚

ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖ惝ćƒŖć‚·ćƒ¼ć®éøꊞ

ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć®VERIFY_READ_COLUMNS恧ćÆć€ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć‚’å¤šå°‘ēŠ ē‰²ć«ć—ć¦ć€å¼·åŠ›ćŖćƒ¬ćƒ™ćƒ«ć®äø€č²«ę€§ćŒęä¾›ć•ć‚Œć¾ć™ć€‚ęœ€åˆć«čŖ­ćæč¾¼ć¾ć‚ŒćŸć™ć¹ć¦ć®åˆ—ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«é€äæ”ć—ćŸć‚Šć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØęÆ”č¼ƒć—ćŸć‚Šć™ć‚‹åæ…č¦ćŒć‚ć‚‹ćŸć‚ć€ć“ć®ćƒćƒŖć‚·ćƒ¼ć§ćÆå¤šå°‘ć®ć‚Ŗćƒ¼ćƒćƒ¼ćƒ˜ćƒƒćƒ‰ćŒčæ½åŠ ć§ē™ŗē”Ÿć—ć¾ć™ć€‚VERIFY_READ_COLUMNSćÆ強力ćŖćƒ¬ćƒ™ćƒ«ć®äø€č²«ę€§ćŒåæ…要ćŖå “åˆć«é©ć—ć¦ć„ć¾ć™ć€‚ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ć‚’å«ć‚ć‚‹ć‚ˆć†ć«ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹č”Øć‚’å¤‰ę›“ć™ć‚‹ć“ćØćÆć§ćć¾ć›ć‚“ć€‚

VERIFY_SELECTED_COLUMNSćÆ态開ē™ŗ者恌ꤜčØ¼ć‚’å®Œå…Øć«åˆ¶å¾”ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«å›ŗęœ‰ć®ēŸ„識悒ä½æē”Ø恗恦SQLć‚’å¾®čŖæę•“ć™ć‚‹å “åˆć«ä¾æåˆ©ć§ć™ć€‚

VERIFY_AUTO_VERSION_COLUMNS恧ćÆ态VERIFY_READ_COLUMNSćØåŒć˜ćƒ¬ćƒ™ćƒ«ć®äø€č²«ę€§ćŒęä¾›ć•ć‚Œć¾ć™ćŒć€integeråž‹ć®1ć¤ć®åˆ—ć‚’ęÆ”č¼ƒć™ć‚‹ć ć‘ć§ęøˆćæć¾ć™ć€‚ć“ć®ćƒćƒŖć‚·ćƒ¼ć§ćÆćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ć®ć‚¤ćƒ³ć‚ÆćƒŖćƒ”ćƒ³ćƒˆć‚‚č”Œć‚ć‚Œć‚‹ćŸć‚ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®čØ­å®šćŒč‹„å¹²åæ…要恧恙怂

VERIFY_VERSION_COLUMNSćÆć€ęœ€é«˜ćƒ¬ćƒ™ćƒ«ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćØäø€č²«ę€§ćŒåæ…要ćŖęœ¬ē•Ŗć‚·ć‚¹ćƒ†ćƒ ć«ćŠč–¦ć‚ć—ć¾ć™ć€‚VERIFY_AUTO_VERSION_COLUMNSćØåŒę§˜ć«ć€é«˜ć„ćƒ¬ćƒ™ćƒ«ć®äø€č²«ę€§ćŒęä¾›ć•ć‚Œć¾ć™ćŒć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§1ć¤ć®åˆ—ć®ęÆ”č¼ƒćŒč”Œć‚ć‚Œć‚‹ć ć‘ć§ć™ć€‚VERIFY_VERSION_COLUMNS恧ćÆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ćƒćƒ¼ć‚øćƒ§ćƒ³åˆ—ć®ć‚¤ćƒ³ć‚ÆćƒŖćƒ”ćƒ³ćƒˆć‚’č”Œć†åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚äø€éƒØć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ćÆ态ꛓꖰꙂ恫č‡Ŗ動ēš„ć«ć‚¤ćƒ³ć‚ÆćƒŖćƒ”ćƒ³ćƒˆć™ć‚‹åˆ—ć‚æć‚¤ćƒ—ć‚’ęä¾›ć—ć¦ć„ć¾ć™ćŒć€ć“ć®å‹•ä½œćÆćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ćƒˆćƒŖć‚¬ćƒ¼ć‚’ä½æē”Øć—ć¦å®Ÿč£…ć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚

VERIFY_MODIFIED_COLUMNSćØVERIFY_NONE恧ćÆäø€č²«ę€§ćŒē¢ŗäæć•ć‚Œć‚‹ē؋åŗ¦ćÆ低äø‹ć—ć¾ć™ćŒć€ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖē«¶åˆćŒčµ·ćć‚‹åÆčƒ½ę€§ć‚‚å°‘ćŖ恏ćŖć‚Šć¾ć™ć€‚é«˜ćƒ¬ćƒ™ćƒ«ćŖćƒ‡ćƒ¼ć‚æ恮äø€č²«ę€§ć®åæ…č¦ę€§ć‚ˆć‚Šć‚‚ć€ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć€ē«¶åˆć®å›žéæć®ę–¹ćŒé‡č¦ćŖ堓合ćÆć€ć“ć‚Œć‚‰ć®ćƒćƒŖć‚·ćƒ¼ć‚’ę¤œčØŽć—ć¾ć™ć€‚

ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³

RowSet悒ä½æē”Øć™ć‚‹å “åˆćÆ仄äø‹ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćƒ»ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć‚’ę¤œčØŽć—ć¾ć™ć€‚

JDBCć®ćƒćƒƒćƒå‡¦ē†

RowSetå®Ÿč£…ć§ćÆJDBCć®ćƒćƒƒćƒå‡¦ē†ć‚‚ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć¾ć™ć€‚å„SQLꖇ悒JDBCćƒ‰ćƒ©ć‚¤ćƒć«å€‹ć€…ć«é€äæ”ć™ć‚‹ä»£ć‚ć‚Šć«ć€ćƒćƒƒćƒå‡¦ē†ć§ćÆę–‡ć®é›†åˆć‚’1恤恮äø€ę‹¬å‡¦ē†ćØ恗恦JDBCćƒ‰ćƒ©ć‚¤ćƒć«é€äæ”ć—ć¾ć™ć€‚ćƒćƒƒćƒå‡¦ē†ćÆćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć§ē„”åŠ¹ć«ćŖć£ć¦ć„ć¾ć™ćŒć€äø€čˆ¬ć«1ć¤ć®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć§å¤šę•°ć®ę›“ę–°ćŒē™ŗē”Ÿć™ć‚‹å “åˆć«ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ćŒå‘äøŠć—ć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćØćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«åÆ¾ć—ć¦ć“ć®ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć‚’ęœ‰åŠ¹ćŠć‚ˆć³ē„”åŠ¹ć«čØ­å®šć—ć¦ć€ćƒ™ćƒ³ćƒćƒžćƒ¼ć‚Æć‚’å®Ÿč”Œć—ć¦ćæ悋ćØ悈恄恧恗悇恆怂

WLCachedRowSetć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć«ćÆ态INSERT态DELETEć€ćŠć‚ˆć³UPDATEę–‡ć®ćƒćƒƒćƒå‡¦ē†ć‚’åˆ¶å¾”ć™ć‚‹ćŸć‚ć®setBatchInserts(boolean)态setBatchDeletes(boolean)ć€ćŠć‚ˆć³setBatchUpdates(boolean)ćƒ”ć‚½ćƒƒćƒ‰ćŒć‚ć‚Šć¾ć™ć€‚


ę³Øꄏ:

setBatchInserts态setBatchDeletes态setBatchUpdatesćƒ”ć‚½ćƒƒćƒ‰ćÆ态acceptChangesćƒ”ć‚½ćƒƒćƒ‰ć‚’å‘¼ć³å‡ŗć™å‰ć«å‘¼ć³å‡ŗ恙åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚


Oracle Databaseć®ćƒćƒƒćƒå‡¦ē†ć®åˆ¶é™

WLCachedRowSetćÆć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖåŒę™‚å®Ÿč”Œę€§åˆ¶å¾”ć«ä¾å­˜ć—ć¦ć„ć‚‹ćŸć‚ć€ę›“ę–°ć¾ćŸćÆå‰Šé™¤ć‚³ćƒžćƒ³ćƒ‰ćŒęˆåŠŸć—ćŸć‹ć€ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖē«¶åˆćŒē™ŗē”Ÿć—ćŸć‹ć‚’åˆ¤åˆ„恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚WLCachedRowSetå®Ÿč£…ć§ćÆć€ę–‡ć«ć‚ˆć£ć¦ę›“ę–°ć•ć‚ŒćŸč”Œć®ę•°ć«ć¤ć„ć¦ć®JDBCćƒ‰ćƒ©ć‚¤ćƒć®å ±å‘Šć«åŸŗ恄恄恦态ē«¶åˆćŒē™ŗē”Ÿć—ćŸć‹ć©ć†ć‹ć‚’åˆ¤åˆ„ć—ć¾ć™ć€‚ę›“ę–°ć•ć‚ŒćŸč”ŒćŒ0ć®å “åˆć€WLCachedRowSet恧ćÆē«¶åˆćŒē™ŗē”Ÿć—ćŸćØčŖč­˜ć•ć‚Œć¾ć™ć€‚

Oracle JDBCćƒ‰ćƒ©ć‚¤ćƒć§ćÆćƒćƒƒćƒę›“ę–°ćŒå®Ÿč”Œć•ć‚Œć‚‹ćØjava.sql.Statement.SUCCESS_NO_INFO恌čæ”ć•ć‚Œć‚‹ćŸć‚ć€RowSetå®Ÿč£…ć§ćÆē«¶åˆćŒē™ŗē”Ÿć—ćŸć‹ć©ć†ć‹ć‚’åˆ¤åˆ„ć™ć‚‹ćŸć‚ć«ęˆ»ć‚Šå€¤ć‚’ä½æē”Øć§ćć¾ć›ć‚“ć€‚

ćƒćƒƒćƒå‡¦ē†ćŒOraclećƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ä½æē”Ø恕悌悋恓ćØ恌RowSet恧ꤜå‡ŗć•ć‚ŒćŸå “åˆć€ćƒćƒƒćƒå‡¦ē†ć®å‹•ä½œćÆč‡Ŗ動ēš„ć«å¤‰ę›“ć•ć‚Œć¾ć™ć€‚

惐惃惁ęŒæå…„ćÆꤜčØ¼ć•ć‚ŒćŖ恄恟悁态通åøøć©ćŠć‚Šå®Ÿč”Œć•ć‚Œć¾ć™ć€‚

ćƒćƒƒćƒę›“ę–°ćÆę­£åøøć«å®Ÿč”Œć•ć‚Œć¾ć™ćŒć€RowSet恧ćÆē‰¹åˆ„ćŖSELECTå•åˆć›ćŒē™ŗč”Œć•ć‚Œć€ćƒćƒƒćƒę›“ę–°ć§ć‚Ŗćƒ—ćƒ†ć‚£ćƒŸć‚¹ćƒ†ć‚£ćƒƒć‚ÆćŖē«¶åˆćŒē™ŗē”Ÿć—ćŸć‹ć©ć†ć‹ćŒćƒć‚§ćƒƒć‚Æć•ć‚Œć¾ć™ć€‚

SELECTꤜčØ¼å•åˆć›ć®å¾Œć§ćƒćƒƒćƒå‰Šé™¤ć‚’å®Ÿč”Œć™ć‚‹ć‚ˆć‚Šć‚‚åŠ¹ēŽ‡ēš„ćŖćŸć‚ć€ćƒćƒƒćƒå‰Šé™¤ć§ćÆć‚°ćƒ«ćƒ¼ćƒ—å‰Šé™¤ćŒä½æē”Øć•ć‚Œć¾ć™ć€‚

ć‚°ćƒ«ćƒ¼ćƒ—å‰Šé™¤

č¤‡ę•°ć®č”Œć‚’å‰Šé™¤ć™ć‚‹å “åˆć€RowSet恧ćÆ通åøøć€å‰Šé™¤ć™ć‚‹č”Œć”ćØ恫DELETEꖇ恌ē™ŗč”Œć•ć‚Œć¾ć™ć€‚ć‚°ćƒ«ćƒ¼ćƒ—å‰Šé™¤ć‚’ęœ‰åŠ¹ć«ć—ćŸå “åˆć€RowSet恧ćÆå‰Šé™¤ć™ć‚‹č”Œć‚’å«ć‚€WHEREå„ćŒęŒ‡å®šć•ć‚ŒćŸDELETEꖇ恌1恤恠恑ē™ŗč”Œć•ć‚Œć¾ć™ć€‚

恟ćØ恈恰态č”Ø恋悉3äŗŗć®å¾“ę„­å“”ć‚’å‰Šé™¤ć™ć‚‹å “åˆć€é€šåøø恧恂悌恰RowSetć‹ć‚‰ę¬”ć®ć‚ˆć†ć«ē™ŗč”Œć•ć‚Œć¾ć™ć€‚

DELETE FROM employees WHERE e_id = 3 AND e_version = 1;
DELETE FROM employees WHERE e_id = 4 AND e_version = 3;
DELETE FROM employees WHERE e_id = 5 AND e_version = 10;

ć‚°ćƒ«ćƒ¼ćƒ—å‰Šé™¤ć‚’ęœ‰åŠ¹ć«ć—ćŸå “åˆć€RowSetć‹ć‚‰ę¬”ć®ć‚ˆć†ć«ē™ŗč”Œć•ć‚Œć¾ć™ć€‚

DELETE FROM employees 
WHERE e_id = 3 AND e_version = 1 OR
      e_id = 4 AND e_version = 3 OR
      e_id = 5 AND e_version = 10;

WLRowSetMetaData.setGroupDeleteSize悒ä½æē”Ø恙悋ćØ态1恤恮DELETEę–‡ć«å«ć¾ć‚Œć‚‹č”Œć®ę•°ć‚’ę±ŗå®šć§ćć¾ć™ć€‚ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆå€¤ćÆ50恧恙怂

PKõßPUZĶFĶPK‰±-AOEBPS/thirdparty.htm€’ JDBCćƒ‰ćƒ©ć‚¤ćƒć§ć®APIę‹”å¼µę©Ÿčƒ½ć®ä½æć„ę–¹

7 JDBCćƒ‰ćƒ©ć‚¤ćƒć§ć®APIę‹”å¼µę©Ÿčƒ½ć®ä½æć„ę–¹

恓恮ē« ć§ćÆ态APIę‹”å¼µę©Ÿčƒ½ć®ä½æē”Ø态Oracleä»®ęƒ³ćƒ—ćƒ©ć‚¤ćƒ™ćƒ¼ćƒˆćƒ»ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć€Oracle Thinćƒ‰ćƒ©ć‚¤ćƒć§ć®ćƒćƒƒćƒå‡¦ē†ćŖć©ć€ć‚µćƒ¼ćƒ‰ćƒ‘ćƒ¼ćƒ†ć‚£ć®JDBCćƒ‰ćƒ©ć‚¤ćƒć‚’čØ­å®šćŠć‚ˆć³ä½æē”Øć™ć‚‹ę–¹ę³•ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚


ę³Øꄏ:

ć“ć®å¾Œć®é …ć§ē¤ŗ恙weblogic.jdbc.vendor.oracle.*ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø恫ćŖć‚Šć¾ć—ćŸć€‚å°†ę„ć®WebLogic ServerćƒŖćƒŖćƒ¼ć‚¹ć§ćÆå‰Šé™¤ć•ć‚Œć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚


JDBCć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®APIę‹”å¼µę©Ÿčƒ½ć®ä½æć„ę–¹

Oracleć‚’å«ć‚€äø€éƒØć®ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ćƒ™ćƒ³ćƒ€ćƒ¼ć§ćÆ态DBMS悒ä½æē”Øć™ć‚‹ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ćƒ‡ćƒ¼ć‚æć‚’ę“ä½œć™ć‚‹ćŸć‚ć®ē‹¬č‡Ŗć®ćƒ”ć‚½ćƒƒćƒ‰ćŒčæ½åŠ ć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć‚Œć‚‰ć®ćƒ”ć‚½ćƒƒćƒ‰ćÆ态ęؙęŗ–恮JDBCć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ę‹”å¼µć—ćŸć‚‚ć®ć§ć™ć€‚WebLogic ServerćÆć€ćƒ™ćƒ³ćƒ€ćƒ¼ć®JDBCćƒ‰ćƒ©ć‚¤ćƒć§ćƒ‘ćƒ–ćƒŖ惃ć‚Æćƒ»ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćØć—ć¦å…¬é–‹ć•ć‚Œć¦ć„ć‚‹ć™ć¹ć¦ć®ę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ć‚µćƒćƒ¼ćƒˆć—ć¾ć™ć€‚

JDBCćƒ‰ćƒ©ć‚¤ćƒć§å…¬é–‹ć•ć‚Œć¦ć„ć‚‹ę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恙悋恫ćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚³ćƒ¼ćƒ‰ć«ę¬”ć®ć‚ˆć†ćŖꉋ順悒ēµ„ćæč¾¼ć‚€åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

  • ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć§ć®ęŽ„ē¶šć®ä½œęˆć«ä½æē”Ø恙悋JDBCćƒ‰ćƒ©ć‚¤ćƒć‹ć‚‰ć€ćƒ‰ćƒ©ć‚¤ćƒćƒ»ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć—ć¾ć™ć€‚

  • ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‹ć‚‰ęŽ„ē¶šć‚’å–å¾—ć—ć¾ć™ć€‚

  • ꎄē¶šć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ćƒ™ćƒ³ćƒ€ćƒ¼ć®ęŽ„ē¶šć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹åž‹ć«ć‚­ćƒ£ć‚¹ćƒˆć—ć¾ć™ć€‚

  • ćƒ™ćƒ³ćƒ€ćƒ¼ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć§čŖ¬ę˜Žć•ć‚Œć¦ć„ć‚‹ćØ恊悊恫APIę‹”å¼µę©Ÿčƒ½ć‚’ä½æē”Øć—ć¾ć™ć€‚

  • 惫惃ć‚Æć‚¢ćƒƒćƒ—ć®å¤±ę•—ć‚’ę•ę‰ć™ć‚‹ćŸć‚ć«JNDI惫惃ć‚Æć‚¢ćƒƒćƒ—ćŒtry/catch惖惭惃ć‚Æć§åŒ…ć¾ć‚Œć¦ć„ć‚‹ē‚¹ć€ć‚³ćƒ³ćƒ†ć‚­ć‚¹ćƒˆćŒfinally惖惭惃ć‚Æ恮äø­ć§é–‰ć˜ć‚‰ć‚Œć¦ć„ć‚‹ē‚¹ć«ē•™ę„ć—ć¾ć™ć€‚

ä»„é™ć®ēÆ€ć§ćÆć€ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć§č©³ē“°ć‚’ē¤ŗć—ć¾ć™ć€‚ē‰¹å®šć®JDBCćƒ‰ćƒ©ć‚¤ćƒć®ē‰¹å®šć®ę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć«ć¤ć„ć¦ćÆ态JDBCćƒ‰ćƒ©ć‚¤ćƒćƒ»ćƒ™ćƒ³ćƒ€ćƒ¼ć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

JDBCć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®APIę‹”å¼µę©Ÿčƒ½ćøć®ć‚¢ć‚Æć‚»ć‚¹ę–¹ę³•ć‚’ē¤ŗć™ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

仄äø‹ć®ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć§ćÆ态Oracle Thin Driverć§åˆ©ē”Øć§ćć‚‹ę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态JDBC恮APIę‹”å¼µę©Ÿčƒ½ć®ä½æē”Øę–¹ę³•ć‚’ē¤ŗć—ć¾ć™ć€‚ä½æē”Ø恙悋JDBCćƒ‰ćƒ©ć‚¤ćƒć§å…¬é–‹ć•ć‚Œć¦ć„ć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć«åˆć‚ć›ć¦ć€ć“ć‚Œć‚‰ć®ä¾‹ć‚’äæ®ę­£ć™ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚

APIę‹”å¼µę©Ÿčƒ½ćøć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćƒ‘ćƒƒć‚±ćƒ¼ć‚øć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć™ć‚‹

ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć§ć®ęŽ„ē¶šć®ä½œęˆć«ä½æē”Ø恙悋JDBCćƒ‰ćƒ©ć‚¤ćƒć‹ć‚‰ć€ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć—ć¾ć™ć€‚ć“ć®ä¾‹ć§ćÆOracle Thin Driverć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Øć—ć¾ć™ć€‚

import java.sql.*;
import java.util.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import oracle.jdbc.*;
// Import driver interfaces. The driver must be the same driver
// used to create the database connection in the data source.

ꎄē¶šć‚’å–å¾—ć™ć‚‹

JNDI态DataSourceć€ćŠć‚ˆć³ćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ćƒ»ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’ē¢ŗē«‹ć—ć¾ć™ć€‚

// Get a valid DataSource object for a data source.
// Here we assume that getDataSource() takes 
// care of those details.
javax.sql.DataSource ds = getDataSource(args);
// get a java.sql.Connection object from the DataSource
java.sql.Connection conn = ds.getConnection();

ꎄē¶šć‚’ćƒ™ćƒ³ćƒ€ćƒ¼ć®ęŽ„ē¶šćØć—ć¦ć‚­ćƒ£ć‚¹ćƒˆć™ć‚‹

ꎄē¶šć‚’å–å¾—ć—ćŸć‚‰ć€ćƒ™ćƒ³ćƒ€ćƒ¼ć®ęŽ„ē¶šć®å½¢ć«ć‚­ćƒ£ć‚¹ćƒˆć§ćć¾ć™ć€‚ć“ć®ä¾‹ć§ćÆOracle Thin Driver恮OracleConnectionć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Øć—ć¾ć™ć€‚

orConn = (oracle.jdbc.OracleConnection)conn;
// This replaces the deprecated process of casting the connection
// to a weblogic.jdbc.vendor.oracle.OracleConnection. For example:
// orConn = (weblogic.jdbc.vendor.oracle.OracleConnection)conn;

APIę‹”å¼µę©Ÿčƒ½ć‚’ä½æē”Ø恙悋

ę¬”ć®ć‚³ćƒ¼ćƒ‰ć§ćÆ态Oracle Thin Driver恧ä½æē”Ø恧恍悋Oracleć®č”Œćƒ—ćƒŖćƒ•ć‚§ćƒƒćƒćƒ»ćƒ”ć‚½ćƒƒćƒ‰ć®ä½æć„ę–¹ć‚’ē¤ŗć—ć¾ć™ć€‚

例7-1 APIę‹”å¼µę©Ÿčƒ½ć‚’ä½æē”Ø恙悋

// Cast to OracleConnection and retrieve the 
// default row prefetch value for this connection.
int default_prefetch = 
   ((oracle.jdbc.OracleConnection)conn).getDefaultRowPrefetch();
// This replaces the deprecated process of casting the connection
// to a weblogic.jdbc.vendor.oracle.OracleConnection. For example:
// ((weblogic.jdbc.vendor.oracle.OracleConnection)conn).
//       getDefaultRowPrefetch();
System.out.println("Default row prefetch 
    is " + default_prefetch);
java.sql.Statement stmt = conn.createStatement();
// Cast to OracleStatement and set the row prefetch
// value for this statement. Note that this
// prefetch value applies to the connection between
// WebLogic Server and the database.
      ((oracle.jdbc.OracleStatement)stmt).setRowPrefetch(20);
   // This replaces the deprecated process of casting the
   // statement to a weblogic.jdbc.vendor.oracle.OracleStatement.
   // For example:
   // ((weblogic.jdbc.vendor.oracle.OracleStatement)stmt).
   //       setRowPrefetch(20);
      // Perform a normal sql query and process the results...
      String query = "select empno,ename from emp";
      java.sql.ResultSet rs = stmt.executeQuery(query);
      while(rs.next()) {
         java.math.BigDecimal empno = rs.getBigDecimal(1);
         String ename = rs.getString(2);
         System.out.println(empno + "\t" + ename);
      }
      rs.close();
      stmt.close();
      conn.close();
      conn = null;
    }

Oracle JDBCć‚æć‚¤ćƒ—ć§ć®APIę‹”å¼µę©Ÿčƒ½ć®ä½æē”Ø

JDBCćŒå®Ÿč£…ć•ć‚ŒćŸćØćć«ć€Oracle JDBCć‚æć‚¤ćƒ—ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Øć™ć‚‹ć‹ć‚ć‚Šć«å…·č±”ć‚Æćƒ©ć‚¹ćŒä½æē”Øć•ć‚Œć¾ć—ćŸć€‚å…·č±”ć‚Æćƒ©ć‚¹ć‚’ä½æē”Ø恙悋ćØå¤šćć®ćƒ‡ćƒ”ćƒŖćƒƒćƒˆćŒć‚ć‚Šć¾ć™ć€‚11.2.0.3ćƒ‰ćƒ©ć‚¤ćƒć§ćÆ态Oracleć‚æć‚¤ćƒ—ć«åƾåæœć™ć‚‹ę–°ć—ć„ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćŒć‚ć‚Šć¾ć™ć€‚ē¾åœØć€å…·č±”ć‚Æćƒ©ć‚¹ć«ć‚ˆć£ć¦ć€ćƒ‘ćƒƒć‚±ćƒ¼ć‚øoracle.jdbcć®ćƒ‘ćƒ–ćƒŖ惃ć‚Æćƒ»ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćŒå®Ÿč£…ć•ć‚Œć¦ć„ć¾ć™ć€‚ćƒ—ćƒ­ć‚°ćƒ©ćƒžćÆåÆčƒ½ćŖå “åˆć«ćÆjava.sqlć«å…¬é–‹ć•ć‚ŒćŸćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚Oracleę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć«ć¤ć„ć¦ćÆ态oracle.jdbc悒ä½æē”Øć—ć¾ć™ć€‚

WebLogic Server恧ćÆć€å…·č±”ć‚Æćƒ©ć‚¹ć®åˆ¶é™ć«åÆ¾å‡¦ć™ć‚‹ćŸć‚ć«ä½æē”Ø恕悌悋态åƾåæœć™ć‚‹ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ęš«å®šēš„ć«å®Ÿč£…ć—ć¾ć—ćŸć€‚ć“ć‚Œć‚‰ćÆē¾åœØ非ęŽØå„ØćØćŖć£ćŸćŸć‚ć€åƾåæœć™ć‚‹oracle.jdbcć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć§ē½®ćę›ćˆć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

Databasećƒćƒ¼ć‚øćƒ§ćƒ³11.2.0.3恧ćÆć€ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćŒć‚ć‚‹ć®ćÆꬔ恮ć‚æ悤惗恧恙怂

å¤ć„Oracleć‚æ悤惗非ęŽØå„ØWLSć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ę–°ć—ć„ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹

oracle.sql.ARRAY

weblogic.jdbc.vendor.oracle.OracleArray

oracle.jdbc.OracleArray

oracle.sql.STRUCT

weblogic.jdbc.vendor.oracle.OracleStruct

oracle.jdbc.OracleStruct

oracle.sql.CLOB

weblogic.jdbc.vendor.oracle.OracleThinClob

oracle.jdbc.OracleClob

oracle.sql.BLOB

weblogic.jdbc.vendor.oracle.OracleThinBlob

oracle.jdbc.OracleBlob

oracle.sql.REF

weblogic.jdbc.vendor.oracle.OracleRef

oracle.jdbc.OracleRef


ę–°ć—ć„ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Øć™ć‚‹ćŸć‚ć®ć‚³ćƒ¼ćƒ‰å¤‰ę›“ćÆć€é›£ć—ććÆć‚ć‚Šć¾ć›ć‚“ćŒę³Øę„ę·±ćč”Œć†åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ę¬”ć®ä¾‹ć§ćÆoracle.sql.ARRAY恌ä½æē”Øć•ć‚Œć¾ć™ć€‚ä»–ć®ć‚æć‚¤ćƒ—ć«ć‚‚åŒę§˜ć®å¤‰ę›“ćŒé©ē”Øć•ć‚Œć¾ć™ć€‚ęŽØå„Øć™ć‚‹å¤‰ę›“ćÆꬔ恮ćØ恊悊恧恙怂

  • Import: å¤ć„ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(oracle.sqlć¾ćŸćÆweblogic.jdbc.vendor.oracle)ć®ć‹ć‚ć‚Šć«ę–°ć—ć„ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(oracle.jdbc)悒ä½æē”Øć™ć‚‹ć‚ˆć†ć«ć€importę–‡ć‚’å¤‰ę›“ć—ć¾ć™ć€‚

  • Declaration: åÆčƒ½ćŖå “åˆć«ćÆ宣čØ€ć§ęؙęŗ–恮Javać‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Øć—ć¾ć™ć€‚Oracleę‹”å¼µę©Ÿčƒ½ć‚’ä½æē”Ø恙悋åæ…č¦ćŒć‚ć‚‹å “合ćÆ态oracle.jdbc恧ꖰ恗恄Oracleć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Øć—ć¾ć™ć€‚

  • Methods: åÆčƒ½ćŖå “åˆć«ćÆęؙęŗ–恮Javać‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Øć—ć¾ć™ć€‚

    • (Oracle Types): åÆčƒ½ćŖå “åˆć«ćÆęؙęŗ–恮Javać‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¾ć™ć€‚åæ…要ćŖ堓合ćÆ态Oracleć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®ćƒ”ć‚½ćƒƒćƒ‰ć‚’oracle.jdbc恧ä½æē”Øć—ć¾ć™ć€‚

    • (Defines): getARRAYćŖ恩Oracleå›ŗęœ‰ć®ćƒ”ć‚½ćƒƒćƒ‰ćÆä½æē”Ø恗ćŖ恄恧恏恠恕恄怂ęؙęŗ–恮Javać‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćŒćŖć„å “åˆćÆć€ć‹ć‚ć‚Šć«ęؙęŗ–恮Javaćƒ”ć‚½ćƒƒćƒ‰(getArrayć¾ćŸćÆgetObjectćŖ恩)悒ä½æē”Øć—ć¾ć™ć€‚

    • (Binds): setARRAYćŖ恩Oracleå›ŗęœ‰ć®ćƒ”ć‚½ćƒƒćƒ‰ćÆä½æē”Ø恗ćŖ恄恧恏恠恕恄怂ęؙęŗ–恮Javać‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćŒćŖć„ćƒ”ć‚½ćƒƒćƒ‰å “åˆćÆć€ć‹ć‚ć‚Šć«ęؙęŗ–恮Javaćƒ”ć‚½ćƒƒćƒ‰(setARRAYć¾ćŸćÆsetObjectćŖ恩)悒ä½æē”Øć—ć¾ć™ć€‚

importꖇ恮ē½®ę›ćÆ态findćØsed悒ä½æē”Øć™ć‚‹ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć§å®Ÿč”Œć§ćć¾ć™ć€‚ä¾‹:

find . -name "*.java" -exec egrep ... > files.list
 
for f in `cat files.list`; do
 
  cat $f |sed 's@^import oracle\.sql\.ARRAY@oracle\.jdbc.OracleArray@g' > /tmp/temp.txt
 
  mv /tmp/temp.txt $f
 
done

ćƒ—ćƒ­ć‚°ćƒ©ćƒžćÆ态oracle.jdbc.OracleConnectionć§ćƒ•ć‚”ć‚Æ惈ćƒŖćƒ»ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态ć‚æć‚¤ćƒ—ć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć‚’ä½œęˆć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ä¾‹:

int[] intArray = { 5, 7, 9};
 
oracle.sql.ArrayDescriptor aDescriptor = new oracle.sql.ArrayDescriptor("SCOTT.TYPE1", connection);
 
oracle.sql.ARRAY array = new oracle.sql.ARRAY(aDescriptor, connection, intArray);

ć“ć‚Œć‚’ę¬”ć®ć‚ˆć†ć«å¤‰ę›“ć—ć¾ć™ć€‚

int[] intArray = { 5, 7, 9};
java.sql.Array array = connection.createOracleArray("SCOTT.TYPE1", intArray);

ę³Øꄏ:

Oracle恧ćÆ态åŒæ名配列ć‚æ悤惗ćÆć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć›ć‚“ć€‚ęؙęŗ–恮Connection.createArrayOfćƒ”ć‚½ćƒƒćƒ‰ć‚‚ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć›ć‚“ć€‚

äø€éƒØć®ćƒ”ć‚½ćƒƒćƒ‰ćÆꬔ恮ē†ē”±ć«ć‚ˆć‚Šä½æē”Ø恧恍ćŖ恏ćŖć‚Šć¾ć—ćŸć€‚

  • ęؙęŗ–ć®ćƒ”ć‚½ćƒƒćƒ‰ć¾ćŸćÆ惑惖ćƒŖ惃ć‚Æćƒ»ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¦åŒć˜ēµęžœć‚’実ē¾ć§ćć¾ć™ć€‚

  • ćƒ”ć‚½ćƒƒćƒ‰ćŒéžęŽØå„Ø恮ć‚æć‚¤ćƒ—ć‚’å‚ē…§ć—ć¦ć„ć¾ć™ć€‚

  • ćƒ”ć‚½ćƒƒćƒ‰ć«é‡č¦ćŖä¾”å€¤ćŒć‚ć‚Šć¾ć›ć‚“ć€‚

ć“ć®ć‚ˆć†ćŖć‚±ćƒ¼ć‚¹ć§ćÆ态ęؙęŗ–API悒ä½æē”Øć™ć‚‹ć‚ˆć†ć«ć‚³ćƒ¼ćƒ‰ć‚’å¤‰ę›“ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚


Oracle Thinćƒ‰ćƒ©ć‚¤ćƒć§ć®éžęŽØå„ØAPIę‹”å¼µę©Ÿčƒ½ć®ä½æć„ę–¹

Oracle Thin Driver恮恻ćØć‚“ć©ć®ę‹”å¼µę©Ÿčƒ½ć§ćÆ态怌JDBCć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®APIę‹”å¼µę©Ÿčƒ½ć®ä½æć„ę–¹ć€ć§čŖ¬ę˜Žć—ćŸć‚ˆć†ćŖęؙęŗ–ēš„ćŖę–¹ę³•ć‚’ä½æē”Øć§ćć¾ć™ć€‚ćŸć ć—ć€ćƒćƒ¼ć‚øćƒ§ćƒ³11.2.0.3ć‚ˆć‚Šć‚‚å‰ć§ćÆ态Oracle Thinćƒ‰ćƒ©ć‚¤ćƒć§ć€ä»„äø‹ć®ć‚Æćƒ©ć‚¹ć®ę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć«åÆ¾ć™ć‚‹ćƒ‘ćƒ–ćƒŖ惃ć‚Æćƒ»ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ęä¾›ć—ć¦ć„ć¾ć›ć‚“ć€‚

  • oracle.sql.ARRAY

  • oracle.sql.STRUCT

  • oracle.sql.REF

  • oracle.sql.BLOB

  • oracle.sql.CLOB

WebLogic Server恧ćÆć€ć“ć‚Œć‚‰ć®ć‚Æćƒ©ć‚¹ć®ę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćŸć‚ć«ć€ē‹¬č‡Ŗć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ęä¾›ć—ć¦ć„ć¾ć™ć€‚

  • weblogic.jdbc.vendor.oracle.OracleArray

  • weblogic.jdbc.vendor.oracle.OracleStruct

  • weblogic.jdbc.vendor.oracle.OracleRef

  • weblogic.jdbc.vendor.oracle.OracleThinBlob

  • weblogic.jdbc.vendor.oracle.OracleThinClob

ä»„é™ć®ēÆ€ć§ćÆć€ć“ć‚Œć‚‰ć®ę‹”å¼µę©Ÿčƒ½ć®WebLogic Serverć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Øć™ć‚‹ćŸć‚ć®ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć‚’ē¤ŗć—ć¾ć™ć€‚ć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć®ćƒŖć‚¹ćƒˆć«ć¤ć„ć¦ćÆ态怌Oracle Thin Driverę‹”å¼µę©Ÿčƒ½ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćØć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć®č”Øć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚č©³ē“°ć«ć¤ć„恦ćÆ态Oracleć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


ę³Øꄏ:

ć“ć®ćƒ—ćƒ­ć‚»ć‚¹ć‚’ä½æē”Ø恙悋ćØ态怌Oracle Thin Driverę‹”å¼µę©Ÿčƒ½ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćØć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć®č”Ø怍恧ē¤ŗć™ę‹”å¼µę©Ÿčƒ½å‘ć‘ć®WebLogic Serverć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Øć§ćć¾ć™ć€‚ćŸć ć—ć€äøŠčØ˜ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆć™ć¹ć¦éžęŽØå„Ø恫ćŖć£ć¦ćŠć‚Šć€WebLogic Serverć®ä»Šå¾Œć®ćƒŖćƒŖćƒ¼ć‚¹ć§å‰Šé™¤ć•ć‚Œć‚‹äŗˆå®šć§ć™ć€‚


Oracle Thin Driverę‹”å¼µę©Ÿčƒ½ć‚’ä½æē”Ø恙悋際恮ē‰¹åˆ„ćŖč€ƒę…®äŗ‹é …

JDBCć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć«Oracle Thin Driverę‹”å¼µę©Ÿčƒ½ć‚’ä½æē”Øć™ć‚‹å “åˆć€ę¬”ć®åˆ¶é™ćŒć‚ć‚Šć¾ć™ć€‚

  • Oracleę‹”å¼µę©Ÿčƒ½ćÆć€ć‚µćƒ¼ćƒćƒ¼ćØåŒć˜JVM悒ä½æē”Øć—ćŸć‚µćƒ¼ćƒćƒ¼å“ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćæ恧态ARRAY态REFć€ćŠć‚ˆć³STRUCTć®å„ć‚Ŗ惖ć‚ø悧ć‚Æ惈恫適ē”Øć§ćć¾ć™ć€‚ćƒŖćƒ¢ćƒ¼ćƒˆćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćƒ»ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ARRAY态REFćŠć‚ˆć³STRUCT恫Oracleę‹”å¼µę©Ÿčƒ½ćÆä½æē”Øć§ćć¾ć›ć‚“ć€‚

  • ęؙęŗ–ä»„å¤–ć®Oraclečؘčæ°å­ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Øć—ć¦ć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³å†…ć§ARRAYćŠć‚ˆć³STRUCTć‚’ä½œęˆć§ćć¾ć™ć€‚

  • Oracleć‚Ŗ惖ć‚ø悧ć‚Æćƒˆåž‹ćø恮REFć‚’å«ć‚€č”Ø恫åÆ¾ć™ć‚‹å•åˆć›ć‚’å®Ÿč”Œć§ćć¾ć™ć€‚REFćÆJDBCć«ć‚ˆć£ć¦Java oracle.sql.REFć‚Ŗ惖ć‚ø悧ć‚Æ惈ćØć—ć¦å…·ä½“åŒ–ć•ć‚Œć¾ć™ć€‚JDBC恧ćÆć€ć‚¼ćƒ­ć‹ć‚‰ć®ę–°č¦REFć®ä½œęˆćÆć‚µćƒćƒ¼ćƒˆć—ć¦ć„ć¾ć›ć‚“ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ē§»å‹•ć—ć¦ę–°č¦REF悒SQL恫ęŒæå…„ć—ć€REF悒éøꊞ恗恦ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć«čæ”ć—ć¾ć™ć€‚

  • ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćØć‚µćƒ¼ćƒćƒ¼ć§ē•°ćŖć‚‹ćƒćƒ¼ć‚øćƒ§ćƒ³ć®WebLogic Server悒ä½æē”Øć™ć‚‹å “åˆćÆ态ē›øäŗ’運ē”Øę€§ć®åˆ¶é™ćŒć‚ć‚Šć¾ć™ć€‚ć€Œć•ć¾ć–ć¾ćŖćƒćƒ¼ć‚øćƒ§ćƒ³ć®WebLogic Serverć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆ/ć‚µćƒ¼ćƒćƒ¼é–“ć«ćŠć‘ć‚‹APIę‹”å¼µę©Ÿčƒ½ć®ć‚µćƒćƒ¼ćƒˆć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


    ę³Øꄏ:

    JDBC 4.0 API恧ćÆ态ꬔ恮java.sql.ConnectionćÆčؘčæ°å­ćŖć—ć«ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³å†…ć§STRUCTćŠć‚ˆć³ARRAYć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć™ć‚‹ćŸć‚ć«ä½æē”Øć§ćć¾ć™ć€‚

    • java.sql.Connection.createStruct(): Connection.createStruct()悒ä½æē”Ø恗恦SQLę§‹é€ ä½“ć‚’ä½œęˆć™ć‚‹ćØćć«ćÆć€ć™ć¹ć¦ć®ćƒ‡ćƒ¼ć‚æ型(java.sql.Clob态java.sql.Blob态java.sql.Struct态java.sql.Ref态java.sql.Array态java.sql.NClobć€ćŠć‚ˆć³java.sql.SQLXML)ć®ćƒ©ćƒƒćƒ—ć‚’č§£é™¤ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ę§‹é€ ä½“ć‚’ä½œęˆć—ćŸć‚‰ć€ę§‹é€ ä½“ć‚’ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«čæ”ć™å‰ć«ę§‹é€ ä½“ć‚’å†åŗ¦ćƒ©ćƒƒćƒ—ć™ć‚‹ę–¹ę³•ćÆć‚ć‚Šć¾ć›ć‚“ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«čæ”ć•ć‚Œć‚‹ę§‹é€ ä½“ćÆć€ćƒ©ćƒƒćƒ—č§£é™¤ć•ć‚ŒćŸćƒ‡ćƒ¼ć‚æåž‹ć®å€¤ć‚’ęŒć”ć¾ć™ć€‚

    • java.sql.Connection.createArrayOf(): SQLä»•ę§˜ć§ćÆåŒæåć®é…åˆ—åž‹ćŒåæ…要恫ćŖć‚Šć¾ć™ć€‚é…åˆ—ć‚’ä½æē”Øć™ć‚‹å‰ć®åå‰ć‚’ęŒć¤é…åˆ—åž‹ć‚’ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹å†…ć«ä½œęˆć—ć¾ć™ć€‚ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆå“ć‹ć‚‰ćÆé…åˆ—ć‚’ä½œęˆć§ćć¾ć›ć‚“ć€‚


JDBCć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®Oracle Thin Driverę‹”å¼µę©Ÿčƒ½ć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰

仄äø‹ć®ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć§ćÆ态11.2.0.3ć‚ˆć‚Šć‚‚å‰ć®ć€ćƒ‘ćƒ–ćƒŖ惃ć‚Æćƒ»ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćØć—ć¦åˆ©ē”Ø恧恍ćŖ恄Oracleę‹”å¼µę©Ÿčƒ½ć«åÆ¾ć™ć‚‹WebLogic Serverć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ę–¹ę³•ć‚’ē¤ŗć—ć¾ć™ć€‚ę¬”ć®ć‚ˆć†ćŖć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćŒć‚ć‚Šć¾ć™ć€‚

WebLogic ServerćØå…±ć«ć‚µćƒ¼ćƒćƒ¼ćƒ»ć‚µćƒ³ćƒ—ćƒ«ć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć™ć‚‹ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ć‚’éøęŠžć—ćŸå “åˆćÆ态JDBCć‚µćƒ³ćƒ—ćƒ«ć®č©³ē“°ćŖć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚JDBCć‚µćƒ³ćƒ—ćƒ«ćÆ通åøø态WL_HOME\samples\server\src\examples\jdbcć«ć‚ć‚Šć¾ć™ć€‚WL_HOMEćÆWebLogic Serverć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ćŸćƒ•ć‚©ćƒ«ćƒ€ć§ć™ć€‚

ARRAYć«ć‚ˆć‚‹ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°

WebLogic Serverć®ć‚µćƒ¼ćƒćƒ¼å“ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆ态ēµęžœć‚»ćƒƒćƒˆć€ć¾ćŸćÆJava配列ćØć—ć¦å‘¼å‡ŗ恗åÆčƒ½ę–‡ć‚’ä½æē”Ø恙悋恓ćØć«ć‚ˆć‚Šć€Oracle Collection (SQL ARRAY)ć‚’å®Ÿä½“åŒ–ć§ćć¾ć™ć€‚

WebLogic Serverć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ARRAY悒ä½æē”Ø恙悋恫ćÆć€ę¬”ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. åæ…要ćŖć‚Æćƒ©ć‚¹ć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć—ć¾ć™ć€‚

  2. ꎄē¶šć‚’å–å¾—ć—ć¦ć€ęŽ„ē¶šć®ćŸć‚ć®ę–‡ć‚’ä½œęˆć—ć¾ć™ć€‚

  3. ēµęžœć‚»ćƒƒćƒˆć€ć¾ćŸćÆ呼å‡ŗ恗åÆčƒ½ę–‡ć‚’ä½æē”Ø恗恦ARRAYć‚’å–å¾—ć—ć¾ć™ć€‚

  4. ARRAY悒java.sql.Arrayć¾ćŸćÆweblogic.jdbc.vendor.oracle.OracleArrayć®ć„ćšć‚Œć‹ćØ恗恦ä½æē”Øć—ć¾ć™ć€‚

  5. ęؙęŗ–Javaćƒ”ć‚½ćƒƒćƒ‰(java.sql.ArrayćØ恗恦ä½æē”Ø)ć€ć¾ćŸćÆOracleę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰(weblogic.jdbc.vendor.oracle.OracleArrayć«ć‚­ćƒ£ć‚¹ćƒˆ)悒ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æć‚’ę“ä½œć—ć¾ć™ć€‚

仄äø‹ć®ēÆ€ć§ćÆć€ć“ć‚Œć‚‰ć®ć‚¢ć‚Æć‚·ćƒ§ćƒ³ć®č©³ē“°ć«ć¤ć„恦čŖ¬ę˜Žć—ć¾ć™ć€‚


ę³Øꄏ:

ARRAYćÆć‚µćƒ¼ćƒćƒ¼å“ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć®ćæä½æē”Øć§ćć¾ć™ć€‚ćƒŖćƒ¢ćƒ¼ćƒˆćƒ»ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćƒ»ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆARRAYćÆä½æē”Øć§ćć¾ć›ć‚“ć€‚


WebLogic Oracleę‹”å¼µę©Ÿčƒ½ćøć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćƒ‘ćƒƒć‚±ćƒ¼ć‚øć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć™ć‚‹

ć“ć®ä¾‹ć§ä½æē”Ø恙悋WebLogicć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć—ć¾ć™ć€‚OracleArrayć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ态oracle.sql.ARRAY恫ē›øå½“ć—ć€WebLogic Serverć§ć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć™ć‚‹å “åˆć€WebLogicć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćØåŒę§˜ć«ä½æē”Øć§ćć¾ć™ć€‚

import java.sql.*;
import java.util.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import weblogic.jdbc.vendor.oracle.*;

ꎄē¶šć‚’ē¢ŗē«‹ć™ć‚‹

JNDIćØDataSourceć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’ē¢ŗē«‹ć—ć¾ć™ć€‚

// Get a valid DataSource object.
// Here we assume that getDataSource() takes 
// care of those details.
javax.sql.DataSource ds = getDataSource(args);
// get a java.sql.Connection object from the DataSource
java.sql.Connection conn = ds.getConnection();

ARRAYć‚’å–å¾—ć™ć‚‹

呼å‡ŗ恗åÆčƒ½ę–‡ć€ć¾ćŸćÆēµęžœć‚»ćƒƒćƒˆć«getArray()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态Javaé…åˆ—ć‚’å–å¾—ć§ćć¾ć™ć€‚ć“ć®é…åˆ—ć‚’java.sql.arrayćØ恗恦ä½æē”Ø恙悋恓ćØ恧ęؙęŗ–java.sql.arrayćƒ”ć‚½ćƒƒćƒ‰ć‚’åˆ©ē”Øć§ćć¾ć™ć€‚ć¾ćŸweblogic.jdbc.vendor.oracle.OracleArrayć«ć‚­ćƒ£ć‚¹ćƒˆć™ć‚‹ć“ćØć§ć€é…åˆ—ć«Oracleę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’åˆ©ē”Ø恙悋恓ćØć‚‚ć§ćć¾ć™ć€‚

仄äø‹ć®ä¾‹ć§ćÆ态ARRAYć‚’å«ć‚€ēµęžœć‚»ćƒƒćƒˆć‹ć‚‰java.sql.arrayć‚’å–å¾—ć™ć‚‹ę–¹ę³•ć‚’ē¤ŗć—ć¾ć™ć€‚ć“ć®ä¾‹ć§ćÆć€å•åˆć›ć«ć‚ˆć‚Šć€ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆåˆ—(å­¦ē”Ÿć®ęˆēø¾ć‚’ē¤ŗ恙ARRAY)ć‚’å«ć‚€ēµęžœć‚»ćƒƒćƒˆćŒčæ”ć•ć‚Œć¾ć™ć€‚

try {
  conn = getConnection(url);
  stmt = conn.createStatement();
  String sql = "select * from students";
//Get the result set
  rs = stmt.executeQuery(sql);
  while(rs.next()) {
    BigDecimal id = rs.getBigDecimal("student_id");
    String name   = rs.getString("name");
    log("ArraysDAO.getStudents() -- Id = "+id.toString()+", Student = "+name);
//Get the array from the result set
    Array scoreArray  = rs.getArray("test_scores");
    String[] scores = (String[])scoreArray.getArray();
    for (int i = 0; i < scores.length; i++) {
      log("   Test"+(i+1)+" = "+scores[i]);
    }
  }

ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ARRAY悒ꛓꖰ恙悋

ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ćŠć‘ć‚‹ARRAY悒ꛓꖰ恙悋恫ćÆć€ę¬”ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. ę›“ę–°ć™ć‚‹é…åˆ—ćŒćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«ćŖć„å “åˆć€PL/SQL悒ä½æē”Øć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«é…åˆ—ć‚’ä½œęˆć—ć¾ć™ć€‚

  2. ēµęžœć‚»ćƒƒćƒˆć€ć¾ćŸćÆ呼å‡ŗ恗åÆčƒ½ę–‡ć‚’ä½æē”Ø恗恦ARRAYć‚’å–å¾—ć—ć¾ć™ć€‚

  3. Javać‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³å†…ć®é…åˆ—ć‚’java.sql.Arrayć¾ćŸćÆweblogic.jdbc.vendor.oracle.OracleArrayćØć—ć¦ę‰±ć„ć¾ć™ć€‚

  4. 惗ćƒŖćƒšć‚¢ćƒ‰ę–‡ć¾ćŸćÆ呼å‡ŗ恗åÆčƒ½ę–‡ć«setArray()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹å†…ć®é…åˆ—ć‚’ę›“ę–°ć—ć¾ć™ć€‚ä¾‹:

    String sqlUpdate = "UPDATE SCOTT." + tableName + " SET col1 = ?";
    conn  = ds.getConnection();
    pstmt = conn.prepareStatement(sqlUpdate);
    pstmt.setArray(1, array);
    pstmt.executeUpdate();
    

Oracle Arrayę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恙悋

ARRAY恫åÆ¾ć—ć¦Oracle Thin Driverę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’åˆ©ē”Ø恙悋恫ćÆć€ć¾ćšć“ć®é…åˆ—ć‚’weblogic.jdbc.vendor.oracle.OracleArrayć«ć‚­ćƒ£ć‚¹ćƒˆć—ć¾ć™ć€‚ć‚­ćƒ£ć‚¹ćƒˆćŒęøˆć‚€ćØARRAY恫åÆ¾ć—ć¦Oracle Thin Driverę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ć‚’å‘¼ć³å‡ŗć›ć¾ć™ć€‚ä¾‹:

   oracle.sql.Datum[] oracleArray = null;
   oracleArray =       ((weblogic.jdbc.vendor.oracle.OracleArray)scoreArray).getOracleArray();
   String sqltype = null
   sqltype = oracleArray.getSQLTypeName()

STRUCTć«ć‚ˆć‚‹ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°

WebLogic Serverć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆ态Oraclećƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć‚¢ć‚Æć‚»ć‚¹ć—ćŸć‚Šć€ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ę“ä½œć—ćŸć‚Šć§ćć¾ć™ć€‚Oraclećƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ꤜē“¢ć—ćŸć‚‰ć€ć‚«ć‚¹ć‚æ惠Javać‚Ŗ惖ć‚ø悧ć‚Æćƒˆć€ć¾ćŸćÆSTRUCT (java.sql.struct恂悋恄ćÆ weblogic.jdbc.vendor.oracle.OracleStruct)ć®ć„ćšć‚Œć‹ćØ恗恦态ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ć‚­ćƒ£ć‚¹ćƒˆć§ćć¾ć™ć€‚STRUCTćÆć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³äø­ć®ć‚«ć‚¹ć‚æ惠惻ć‚Æćƒ©ć‚¹ć‚’ē½®ćę›ćˆć‚‹ę§‹é€ åŒ–ćƒ‡ćƒ¼ć‚æ悒č”Øć™åž‹åˆ¶é™ć®ē·©ć„ćƒ‡ćƒ¼ć‚æåž‹ć§ć™ć€‚JDBC API恫恊恑悋STRUCTć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć«ćÆ态STRUCTäø­ć®å±žę€§å€¤ć‚’ę“ä½œć™ć‚‹ćŸć‚ć®ć•ć¾ć–ć¾ćŖćƒ”ć‚½ćƒƒćƒ‰ćŒēµ„ćæč¾¼ć¾ć‚Œć¦ć„ć¾ć™ć€‚Oracle恧ćÆć€ć„ćć¤ć‹ć®čæ½åŠ ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态STRUCTć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ę‹”å¼µć—ć¦ć„ć¾ć™ć€‚WebLogic Server恧ćÆć€ć™ć¹ć¦ć®ęؙęŗ–ćƒ”ć‚½ćƒƒćƒ‰ćØ大éƒØåˆ†ć®Oracleę‹”å¼µę©Ÿčƒ½ćŒå®Ÿč£…ć•ć‚Œć¦ć„ć¾ć™ć€‚


ę³Øꄏ:

STRUCT悒ä½æē”Øć™ć‚‹å “åˆć€ę¬”ć®åˆ¶é™ćŒć‚ć‚Šć¾ć™ć€‚

  • STRUCTćÆ态Oracle専ē”ØćØć—ć¦ć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ćƒ‡ćƒ¼ć‚æåž‹ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³äø­ć§STRUCT悒ä½æē”Ø恙悋恫ćÆ态Oracle Thin Driver悒ä½æē”Ø恗恦(通åøøćÆćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ä»‹ć—ć¦)ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć‚„ć‚Šå–ć‚Šć—ć¾ć™ć€‚

  • STRUCTćÆć‚µćƒ¼ćƒćƒ¼å“ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć®ćæ䀒½æē”Øć§ćć¾ć™ć€‚ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćƒ»ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆSTRUCTćÆä½æē”Øć§ćć¾ć›ć‚“ć€‚


WebLogic Serverć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§STRUCT悒ä½æē”Ø恙悋恫ćÆć€ę¬”ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. åæ…要ćŖć‚Æćƒ©ć‚¹ć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć—ć¾ć™ć€‚(怌WebLogic Oracleę‹”å¼µę©Ÿčƒ½ćøć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćƒ‘ćƒƒć‚±ćƒ¼ć‚øć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć™ć‚‹ć€ć‚’å‚ē…§ć€‚)

  2. ꎄē¶šć‚’å–å¾—ć—ć¾ć™(ć€ŒęŽ„ē¶šć‚’ē¢ŗē«‹ć™ć‚‹ć€ć‚’参ē…§)怂

  3. getObject悒ä½æē”Ø恗恦STRUCTć‚’å–å¾—ć—ć¾ć™ć€‚

  4. STRUCT悒STRUCT (ęؙęŗ–ć®ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć™ć‚‹å “åˆćÆjava.sql.Struct态ęؙęŗ–ć®ćƒ”ć‚½ćƒƒćƒ‰ćØOracleę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć™ć‚‹å “åˆćÆweblogic.jdbc.vendor.oracle.OracleStruct)ć«ć‚­ćƒ£ć‚¹ćƒˆć—ć¾ć™ć€‚

  5. ęؙęŗ–ćƒ”ć‚½ćƒƒćƒ‰ć€ć¾ćŸćÆOracle Thin Driverę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æć‚’ę“ä½œć—ć¾ć™ć€‚

仄äø‹ć®ēÆ€ć§ćÆ态ꉋ順3 - 5ć«ć¤ć„ć¦č©³ć—ćčŖ¬ę˜Žć—ć¾ć™ć€‚

STRUCTć‚’å–å¾—ć™ć‚‹

ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒STRUCTćØć—ć¦å–å¾—ć™ć‚‹ć«ćÆć€ć¾ćšå•åˆć›ć‚’ä½æē”Ø恗恦ēµęžœć‚»ćƒƒćƒˆć‚’ä½œęˆć—ć€ę¬”恫getObjectćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态ēµęžœć‚»ćƒƒćƒˆć‹ć‚‰STRUCTć‚’å–å¾—ć—ć¾ć™ć€‚ćć®å¾Œć§STRUCT悒java.sql.Structć«ć‚­ćƒ£ć‚¹ćƒˆć™ć‚‹ć“ćØć«ć‚ˆć‚Šć€ęؙęŗ–Javaćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚ä¾‹:

conn = ds.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from people");
struct = (java.sql.Struct)(rs.getObject(2)); 
Object[] attrs = ((java.sql.Struct)struct).getAttributes();

WebLogic Server恧ćÆ态STRUCT恫åƾåæœć™ć‚‹ć™ć¹ć¦ć®JDBC APIćƒ”ć‚½ćƒƒćƒ‰ćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć™ć€‚

  • getAttributes()

  • getAttributes(java.util.Dictionary map)

  • getSQLTypeName()

ć—ćŸćŒć£ć¦ć€STRUCT悒weblogic.jdbc.vendor.oracle.OracleStructć«ć‚­ćƒ£ć‚¹ćƒˆć™ć‚‹ćØ态ęؙęŗ–ćƒ”ć‚½ćƒƒćƒ‰ćØę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć®äø”ę–¹ć‚’ä½æē”Øć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚

WebLogic OracleStructę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恙悋

STRUCT恫Oracle Thin Driverę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć™ć‚‹å “åˆć€java.sql.Struct (ć¾ćŸćÆå…ƒć®getObject恮ēµęžœ)悒weblogic.jdbc.vendor.oracle.OracleStructć«ć‚­ćƒ£ć‚¹ćƒˆć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ä¾‹:

java.sql.Struct struct =
   (weblogic.jdbc.vendor.oracle.OracleStruct)(rs.getObject(2));

WebLogic Server恧ćÆꬔ恮Oracleę‹”å¼µę©Ÿčƒ½ćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć™ć€‚

  • getDescriptor()

  • getOracleAttributes()

  • getAutoBuffering()

  • setAutoBuffering(boolean)

STRUCTå±žę€§ć‚’å–å¾—ć™ć‚‹

STRUCTć®å€‹ć€…ć®å±žę€§å€¤ć‚’å–å¾—ć™ć‚‹ć«ćÆ态getAttributes()ćŠć‚ˆć³getAttributes(java.util.Dictionary map)恮ęؙęŗ–JDBC APIćƒ”ć‚½ćƒƒćƒ‰ć€ć¾ćŸćÆOracleę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰getOracleAttributes()悒ä½æē”Øć§ćć¾ć™ć€‚

ęؙęŗ–ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恙悋恫ćÆć€ć¾ćšēµęžœć‚»ćƒƒćƒˆć‚’ä½œęˆć—ć€ć“ć®ēµęžœć‚»ćƒƒćƒˆć‹ć‚‰STRUCTć‚’å–å¾—ć—ćŸå¾Œć§getAttributes()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¾ć™ć€‚ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ć«ć‚ˆć‚Šć€é †åŗć®ä»˜ć„ćŸå±žę€§ć®é…åˆ—ćŒčæ”ć•ć‚Œć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ć‚Ŗ惖ć‚ø悧ć‚Æ惈(Javač؀čŖžć‚æ悤惗ćŖ恩)恫STRUCT (ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ć‚Ŗ惖ć‚ø悧ć‚Æ惈)ć®å±žę€§ć‚’å‰²ć‚Šå½“ć¦ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚ć“ć®å¾Œć€å±žę€§ć‚’å€‹åˆ„ć«ę“ä½œć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚ä¾‹:

conn = ds.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from people");
//The third column uses an object data type.
//Use getObject() to assign the object to an array of values.
struct = (java.sql.Struct)(rs.getObject(2));
Object[] attrs = ((java.sql.Struct)struct).getAttributes();
String address = attrs[1]; 

äøŠć®ä¾‹ć§ć€peopleč”Ø恮ē¬¬3åˆ—ć§ćÆć‚Ŗ惖ć‚ø悧ć‚Æćƒˆćƒ»ćƒ‡ćƒ¼ć‚æåž‹ć‚’ä½æē”Øć—ć¦ć„ć¾ć™ć€‚ć“ć®ä¾‹ć§ćÆć€å€¤ć®é…åˆ—ć‚’å«ć‚€Javać‚Ŗ惖ć‚ø悧ć‚Æ惈恫getObjectćƒ”ć‚½ćƒƒćƒ‰ć®ēµęžœć‚’å‰²ć‚Šå½“ć¦ć€åæ…要恫åæœć˜ć¦é…åˆ—äø­ć®å€‹åˆ„ć®å€¤ć‚’ä½æē”Øć™ć‚‹ę–¹ę³•ć‚’ē¤ŗć—ć¦ć„ć¾ć™ć€‚

ć¾ćŸć€getAttributes(java.util.Dictionary map)ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦悂态STRUCTć‹ć‚‰å±žę€§ć‚’å–å¾—ć§ćć¾ć™ć€‚ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć™ć‚‹å “åˆćÆ态Javač؀čŖžćƒ‡ćƒ¼ć‚æåž‹ć«Oracleć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ćƒ‡ćƒ¼ć‚æåž‹ć‚’ćƒžćƒƒćƒ—ć™ć‚‹ćŸć‚ć®ćƒćƒƒć‚·ćƒ„č”Ø悒ē”Øꄏ恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ä¾‹:

java.util.Hashtable map = new java.util.Hashtable();
map.put("NUMBER", Class.forName("java.lang.Integer"));
map.put("VARCHAR", Class.forName("java.lang.String"));
Object[] attrs = ((java.sql.Struct)struct).getAttributes(map);
String address = attrs[1];

ć¾ćŸć€Oracleę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰getOracleAttributes()悒ä½æē”Ø恗恦态STRUCTć®å±žę€§ć‚’å–å¾—ć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚ć¾ćšć€STRUCT悒weblogic.jdbc.vendor.oracle.OracleStructć«ć‚­ćƒ£ć‚¹ćƒˆć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ć“ć®ćƒ”ć‚½ćƒƒćƒ‰ć«ć‚ˆć‚Šć€oracle.sql.Datumć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ćƒ‡ćƒ¼ć‚æé…åˆ—ćŒčæ”ć•ć‚Œć¾ć™ć€‚ä¾‹:

oracle.sql.Datum[] attrs =
   ((weblogic.jdbc.vendor.oracle.OracleStruct)struct).getOracleAttributes();
        oracle.sql.STRUCT address = (oracle.sql.STRUCT) attrs[1];
        Object address_attrs[] = address.getAttributes();

äøŠć®ä¾‹ć§ćÆ态STRUCTćŒćƒć‚¹ćƒˆę§‹é€ ć«ćŖć£ć¦ć„ć¾ć™ć€‚ć¤ć¾ć‚Šć€ć“ć“ć§čæ”ć•ć‚Œć‚‹ćƒ‡ćƒ¼ć‚æé…åˆ—ć«ćÆć€åˆ„ć®STRUCTćŒå…„ć‚Œå­ć®ę§‹é€ ć§ēµ„ćæč¾¼ć¾ć‚Œć¦ć„ć¾ć™ć€‚

STRUCTć«ć‚ˆć£ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ę›“ę–°ć™ć‚‹

STRUCT悒ä½æē”Øć—ć¦ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć®ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ę›“ę–°ć™ć‚‹ć«ćÆ态惗ćƒŖćƒšć‚¢ćƒ‰ę–‡ć«ć‚ć‚‹setObjectćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¾ć™ć€‚ä¾‹:

conn  = ds.getConnection();
stmt = conn.createStatement();
ps = conn.prepareStatement ("UPDATE SCHEMA.people SET EMPLNAME = ?,
EMPID = ? where EMPID = 101");
ps.setString (1, "Smith");
ps.setObject (2, struct);
ps.executeUpdate();

WebLogic Server恧ćÆ态setObjectćƒ”ć‚½ćƒƒćƒ‰ć®3ć¤ć®ćƒćƒ¼ć‚øćƒ§ćƒ³ćŒć™ć¹ć¦ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć™ć€‚

ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć™ć‚‹

STRUCTćÆ通åøøJavać‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³äø­ć§ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ćƒžćƒƒćƒ—ć™ć‚‹ć‚«ć‚¹ć‚æ惠Javać‚Æćƒ©ć‚¹ć®ä»£ć‚ć‚Šć«ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’å®Ÿä½“åŒ–ć™ć‚‹å “åˆć«ä½æē”Øć—ć¾ć™ć€‚WebLogic Serverć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ćÆć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«č»¢é€ć™ć‚‹STRUCTćÆä½œęˆć§ćć¾ć›ć‚“ć€‚äø€ę–¹ć§ć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć‹ć‚‰ę¤œē“¢ć‚„ę“ä½œćŒå®Ÿč”Œć§ćć‚‹ć‚ˆć†ćŖćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć™ć‚‹ę–‡ćÆä½æē”Øć§ćć¾ć™ć€‚ä¾‹:

conn = ds.getConnection();
stmt = conn.createStatement();
cmd = "create type ob as object (ob1 int, ob2 int)"
stmt.execute(cmd);
cmd = "create table t1 of type ob";
stmt.execute(cmd);
cmd = "insert into t1 values (5, 5)"
stmt.execute(cmd);

ę³Øꄏ:

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§STRUCTćÆä½œęˆć§ćć¾ć›ć‚“ć€‚ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ę—¢å­˜ć®ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ꤜē“¢ć—ć¦ć€ć“ć‚Œć‚’STRUCTć«ć‚­ćƒ£ć‚¹ćƒˆć™ć‚‹ć“ćØćÆć§ćć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§STRUCTć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć™ć‚‹ć«ćÆ态ęؙęŗ–å¤–ć®Oracle STRUCTčؘčæ°å­ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ä½æē”Øć—ć¾ć™ć€‚ćŸć ć—ć€WebLogic Server恧ćÆć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć›ć‚“ć€‚


STRUCTå±žę€§ć‚’č‡Ŗå‹•ćƒćƒƒćƒ•ć‚”ćƒŖćƒ³ć‚°ć™ć‚‹

STRUCT悒ä½æē”Ø恙悋WebLogic Serverć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć®ćƒ‘ćƒ•ć‚©ćƒ¼ćƒžćƒ³ć‚¹ć‚’å‘äøŠć•ć›ć‚‹ćŸć‚ć«ć€setAutoBuffering(boolean)ćƒ”ć‚½ćƒƒćƒ‰ć§č‡Ŗå‹•ćƒćƒƒćƒ•ć‚”ćƒŖćƒ³ć‚°ę©Ÿčƒ½ć‚’åˆ‡ć‚Šę›ćˆć‚‹ć“ćØćŒć§ćć¾ć™ć€‚č‡Ŗå‹•ćƒćƒƒćƒ•ć‚”ćƒŖćƒ³ć‚°ć‚’true恫čØ­å®šć™ć‚‹ćØ态weblogic.jdbc.vendor.oracle.OracleStructć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć€STRUCTć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć‚ć‚‹ć™ć¹ć¦ć®å±žę€§ć®ćƒ­ćƒ¼ć‚«ćƒ«ćƒ»ć‚³ćƒ”ćƒ¼ćŒå¤‰ę›ęøˆćæć®ćƒ•ć‚©ćƒ¼ćƒ (恙ćŖć‚ć”SQL恋悉Javač؀čŖžć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«å®Ÿä½“åŒ–ć—ćŸå½¢å¼)恧äæęŒć•ć‚Œć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćŒć€STRUCTć«å†ć³ć‚¢ć‚Æć‚»ć‚¹ć—ćŸę™‚ē‚¹ć§ć€ćƒ‡ćƒ¼ć‚æć‚’å†åŗ¦å¤‰ę›ć™ć‚‹åæ…要ćÆć‚ć‚Šć¾ć›ć‚“ć€‚


ę³Øꄏ:

å¤‰ę›ć—ćŸå±žę€§ć‚’ćƒćƒƒćƒ•ć‚”ćƒŖćƒ³ć‚°ć™ć‚‹ćØć€ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ä½æē”Øć™ć‚‹ćƒ”ćƒ¢ćƒŖćƒ¼é‡ćŒéŽåŗ¦ć«å¢—å¤§ć™ć‚‹ć“ćØćŒć‚ć‚Šć¾ć™ć€‚č‡Ŗå‹•ćƒćƒƒćƒ•ć‚”ćƒŖćƒ³ć‚°ć®ęœ‰åŠ¹/ē„”åŠ¹ć‚’åˆ‡ć‚Šę›ćˆć‚‹ćØ恍ćÆ态åÆčƒ½ćƒ”ćƒ¢ćƒŖćƒ¼ä½æē”Øé‡ć«ć¤ć„ć¦ć‚‚č€ƒę…®ć—ć¦ćć ć•ć„ć€‚


仄äø‹ć®ä¾‹ćÆ态č‡Ŗå‹•ćƒćƒƒćƒ•ć‚”ćƒŖćƒ³ć‚°ć‚’ć‚¢ć‚Æćƒ†ć‚£ćƒ–ć«ć™ć‚‹ę–¹ę³•ć‚’ē¤ŗć—ć¾ć™ć€‚

 ((weblogic.jdbc.vendor.oracle.OracleStruct)struct).setAutoBuffering(true);

ć¾ćŸć€getAutoBuffering()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态č‡Ŗå‹•ćƒćƒƒćƒ•ć‚”ćƒŖćƒ³ć‚°ćƒ»ćƒ¢ćƒ¼ćƒ‰ć‚’åˆ¤ę–­ć™ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚

REFć«ć‚ˆć‚‹ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°

REFćÆć€č”Œć‚Ŗ惖ć‚ø悧ć‚Æ惈恫åÆ¾ć™ć‚‹č«–ē†ćƒć‚¤ćƒ³ć‚æ恧恙怂REF悒ꤜē“¢ć™ć‚‹ćØć€å®Ÿéš›ć«ćÆåˆ„ć®č”Øć«ć‚ć‚‹å€¤ć‚’ęŒ‡ć™ćƒć‚¤ćƒ³ć‚æ恌čæ”ć•ć‚Œć¾ć™ć€‚REF恮ć‚æćƒ¼ć‚²ćƒƒćƒˆćÆ态ć‚Ŗ惖ć‚ø悧ć‚Æ惈č”Øć®č”Œć§ćŖ恑悌恰ćŖć‚Šć¾ć›ć‚“ć€‚REF悒ä½æē”Øć—ć¦ć€ć“ć‚ŒćŒå‚ē…§ć™ć‚‹ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ꤜčØ¼ć—ćŸć‚Šć€ę›“ę–°ć—ćŸć‚Šć§ćć¾ć™ć€‚ć¾ćŸREFć‚’å¤‰ę›“ć™ć‚‹ć“ćØć«ć‚ˆć‚Šć€åŒć˜ć‚Ŗ惖ć‚ø悧ć‚Æ惈惻ć‚æć‚¤ćƒ—ć®åˆ„ć®ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒ꌇē¤ŗ恗恟悊态nullå€¤ć‚’å‰²ć‚Šå½“ć¦ćŸć‚Šć™ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚


ę³Øꄏ:

REF悒ä½æē”Øć™ć‚‹å “åˆć€ę¬”ć®åˆ¶é™ćŒć‚ć‚Šć¾ć™ć€‚

  • REFćÆ态Oraclećƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§ć®ćæä½æē”Øć§ćć¾ć™ć€‚ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³äø­ć§REF悒ä½æē”Ø恙悋恫ćÆ态Oracle Thin Driver悒ä½æē”Ø恗恦(通åøøćÆćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ä»‹ć—ć¦)ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćØć‚„ć‚Šå–ć‚Šć—ć¾ć™ć€‚

  • REFćÆć‚µćƒ¼ćƒćƒ¼å“ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć®ćæä½æē”Øć§ćć¾ć™ć€‚


WebLogic Serverć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§REF悒ä½æē”Ø恙悋恫ćÆć€ę¬”ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. åæ…要ćŖć‚Æćƒ©ć‚¹ć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć—ć¾ć™ć€‚(怌WebLogic Oracleę‹”å¼µę©Ÿčƒ½ćøć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ćƒ‘ćƒƒć‚±ćƒ¼ć‚øć‚’ć‚¤ćƒ³ćƒćƒ¼ćƒˆć™ć‚‹ć€ć‚’å‚ē…§ć€‚)

  2. ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ęŽ„ē¶šć‚’å–å¾—ć—ć¾ć™(ć€ŒęŽ„ē¶šć‚’ē¢ŗē«‹ć™ć‚‹ć€ć‚’参ē…§)怂

  3. ēµęžœć‚»ćƒƒćƒˆć€ć¾ćŸćÆ呼å‡ŗ恗åÆčƒ½ę–‡ć‚’ä½æē”Ø恗恦REFć‚’å–å¾—ć—ć¾ć™ć€‚

  4. ēµęžœć‚’STRUCTć€ć¾ćŸćÆJavać‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć‚­ćƒ£ć‚¹ćƒˆć—ć¾ć™ć€‚ć“ć‚Œć«ć‚ˆć‚Šć€STRUCTćƒ”ć‚½ćƒƒćƒ‰ć€ć¾ćŸćÆJavać‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æć‚’ę“ä½œć§ćć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚

ć¾ćŸć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§REFä½œęˆć—ćŸć‚Šć€ę›“ę–°ć—ćŸć‚Šć§ćć¾ć™ć€‚

ꉋ順3ćØ4恫恤恄恦仄äø‹ć®ēÆ€ć§č©³ć—ćčŖ¬ę˜Žć—ć¾ć™ć€‚

REFć‚’å–å¾—ć™ć‚‹

ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§REFć‚’å–å¾—ć™ć‚‹ć«ćÆć€ć¾ćšå•åˆć›ć‚’ä½æē”Ø恗恦ēµęžœć‚»ćƒƒćƒˆć‚’ä½œęˆć—ć€ę¬”恫getRefćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态ēµęžœć‚»ćƒƒćƒˆć‹ć‚‰REFć‚’å–å¾—ć—ć¾ć™ć€‚ē¶šć„恦REF悒java.sql.Refć«ć‚­ćƒ£ć‚¹ćƒˆć™ć‚‹ć“ćØć«ć‚ˆć‚Šć€ēµ„č¾¼ćæJavaćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć§ćć¾ć™ć€‚ä¾‹:

conn = ds.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT ref (s) FROM t1 s where s.ob1=5");
rs.next();
//Cast as a java.sql.Ref and get REF
ref = (java.sql.Ref) rs.getRef(1);

ćŖ恊态äøŠć®ä¾‹ć®WHEREå„ć§ćÆ态惉惃惈č”ØčØ˜ę³•ć‚’ä½æē”Øć—ć¦ć€å‚ē…§ć™ć‚‹ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®å±žę€§ć‚’ęŒ‡å®šć—ć¦ć„ć¾ć™ć€‚

REF悒java.sql.Refć«ć‚­ćƒ£ć‚¹ćƒˆć—ćŸå¾ŒćÆ态Java APIćƒ”ć‚½ćƒƒćƒ‰getBaseTypeName悒ä½æē”Øć§ćć¾ć™(恓悌ćÆREF恫åƾåæœć—ćŸå”Æäø€ć®JDBC 2.0ęؙęŗ–ćƒ”ć‚½ćƒƒćƒ‰ć§ć™)怂

REFć‚’å–å¾—ć™ć‚‹ćØć€å®Ÿéš›ć«ćÆåˆ„ć®ć‚Ŗ惖ć‚ø悧ć‚Æ惈č”Øć«ć‚ć‚‹å€¤ć‚’ęŒ‡ć™ćƒć‚¤ćƒ³ć‚æ恌čæ”ć•ć‚Œć¾ć™ć€‚REFå€¤ć®å–å¾—ć‚„ę“ä½œć‚’č”Œć†ć«ćÆ态Oracleę‹”å¼µę©Ÿčƒ½ć‚’ä½æē”Øć—ć¾ć™ć€‚ć“ć®ę‹”å¼µę©Ÿčƒ½ćÆ态sql.java.Ref悒weblogic.jdbc.vendor.oracle.OracleRefć«ć‚­ćƒ£ć‚¹ćƒˆć™ć‚‹å “åˆć«é™ć‚Šä½æē”Øć§ćć¾ć™ć€‚

WebLogic OracleRefę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恙悋

REF恫Oracle Thin Driverę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恙悋恫ćÆ态REF悒Oracle REFć«ć‚­ćƒ£ć‚¹ćƒˆć—ć¾ć™ć€‚ä¾‹:

   oracle.sql.StructDescriptor desc =       ((weblogic.jdbc.vendor.oracle.OracleRef)ref).getDescriptor();

WebLogic Server恧ćÆꬔ恮Oracle Thin Driverę‹”å¼µę©Ÿčƒ½ćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć™ć€‚

  • getDescriptor()

  • getSTRUCT()

  • getValue()

  • getValue(dictionary)

  • setValue(object)

å€¤ć‚’å–å¾—ć™ć‚‹

Oracle Thin Driver恧ćÆ态2ć¤ć®ćƒćƒ¼ć‚øćƒ§ćƒ³ć®getValue()ćƒ”ć‚½ćƒƒćƒ‰ćŒęä¾›ć•ć‚Œć¦ć„ć¾ć™ć€‚ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’å–ć‚‰ćŖć„ćƒ”ć‚½ćƒƒćƒ‰ćØć€ęˆ»ć‚Šå€¤ć®åž‹ć‚’ćƒžćƒƒćƒ—ć™ć‚‹ćƒćƒƒć‚·ćƒ„č”Ø悒åæ…要ćØć™ć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć®2ēØ®é”žć§ć™ć€‚ć„ćšć‚Œć‹ć®getValue()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦REFć®å±žę€§å€¤ć‚’å–å¾—ć™ć‚‹ćØ态STRUCTć¾ćŸćÆJavać‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ć„ćšć‚Œć‹ć®å½¢å¼ć§ēµęžœćŒčæ”ć•ć‚Œć¾ć™ć€‚

ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’å–ć‚‰ćŖ恄getValue()ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć™ć‚‹ę–¹ę³•ć‚’ä»„äø‹ć®ä¾‹ć§ē¤ŗć—ć¾ć™ć€‚ć“ć®ä¾‹ć§ćÆ态REF恌oracle.sql.STRUCTåž‹ć«ć‚­ćƒ£ć‚¹ćƒˆć•ć‚Œć¾ć™ć€‚getAttributes()ćƒ”ć‚½ćƒƒćƒ‰ć®čŖ¬ę˜Žć§ē¤ŗ恗恟ćØ恊悊态STRUCTćƒ”ć‚½ćƒƒćƒ‰ē¾¤ć‚’ä½æē”Øć—ć¦å€¤ć‚’ę“ä½œć§ćć¾ć™ć€‚

oracle.sql.STRUCT student1 = 
   (oracle.sql.STRUCT)((weblogic.jdbc.vendor.oracle.OracleRef)ref).getValue ();
Object attributes[] = student1.getAttributes();

ć¾ćŸć€getValue(dictionary)ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态REFć®å€¤ć‚’å–å¾—ć§ćć¾ć™ć€‚ć¾ćŸREFć®å±žę€§ć”ćØć«ćƒ‡ćƒ¼ć‚æåž‹ć‚’Javač؀čŖžćƒ‡ćƒ¼ć‚æåž‹ć«ćƒžćƒƒćƒ—ć™ć‚‹ćŸć‚ć®ćƒćƒƒć‚·ćƒ„č”Ø悒ē”Øꄏ恙悋åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ä¾‹:

java.util.Hashtable map = new java.util.Hashtable();
map.put("VARCHAR", Class.forName("java.lang.String"));
map.put("NUMBER", Class.forName("java.lang.Integer"));
oracle.sql.STRUCT result = (oracle.sql.STRUCT)
   ((weblogic.jdbc.vendor.oracle.OracleRef)ref).getValue (map);

REFå€¤ć‚’ę›“ę–°ć™ć‚‹

REF恮ꛓꖰ恧ćÆć€ę¬”ć®ć‚ˆć†ćŖę“ä½œćŒč”Œćˆć¾ć™ć€‚

  • setValue(object)ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦态åŸŗåŗ•ć®č”Øć®å€¤ć‚’å¤‰ę›“ć™ć‚‹

  • 惗ćƒŖćƒšć‚¢ćƒ‰ę–‡ć¾ćŸćÆ呼å‡ŗ恗åÆčƒ½ę–‡ć‚’ä½æē”Ø恗恦REF恌ꌇē¤ŗć™ć‚‹ä½ē½®ć‚’å¤‰ę›“恙悋

  • REFć®å€¤ć‚’null恫čØ­å®šć™ć‚‹

setValue(object)ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Ø恗恦REFå€¤ć‚’ę›“ę–°ć™ć‚‹å “åˆćÆ态REFć®ę–°ć—ć„å€¤ć‚’ęŒć¤ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć—ć¦ć‹ć‚‰ć€ćć®ć‚Ŗ惖ć‚ø悧ć‚Æ惈悒setValuećƒ”ć‚½ćƒƒćƒ‰ć®ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æćØ恗恦ęø”ć—ć¾ć™ć€‚ä¾‹:

STUDENT s1 = new STUDENT();
s1.setName("Terry Green");
s1.setAge(20);
((weblogic.jdbc.vendor.oracle.OracleRef)ref).setValue(s1);

REFć®å€¤ć‚’setValue(object)ćƒ”ć‚½ćƒƒćƒ‰ć§ę›“ę–°ć™ć‚‹ćØć€å®Ÿéš›ć«ćÆREF恌ē¤ŗ恙č”Øć®å€¤ćŒę›“ę–°ć•ć‚Œć¾ć™ć€‚

惗ćƒŖćƒšć‚¢ćƒ‰ę–‡ć‚’ä½æē”Ø恗恦REF恌ꌇē¤ŗć™ć‚‹ä½ē½®ć‚’ꛓꖰ恙悋恫ćÆ态ꬔ恮åŸŗęœ¬ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. ę–°ć—ć„ä½ē½®ć‚’ęŒ‡ē¤ŗ恙悋REFć‚’å–å¾—ć—ć¾ć™ć€‚ć“ć®REF悒ä½æē”Øć—ć¦ć€åˆ„ć®REFć®å€¤ć‚’ē½®ćę›ćˆć¾ć™ć€‚

  2. SQLć‚³ćƒžćƒ³ćƒ‰ć®ę–‡å­—åˆ—ć‚’ä½œęˆć—ć¦ć€ę—¢å­˜ć®REFć®ä½ē½®ć‚’ć€åˆ„恮REFć®å€¤ć§ē½®ćę›ćˆć¾ć™ć€‚

  3. 惗ćƒŖćƒšć‚¢ćƒ‰ę–‡ć‚’ä½œęˆć€ćŠć‚ˆć³å®Ÿč”Œć—ć¾ć™ć€‚

例:

try {
conn = ds.getConnection();
stmt = conn.createStatement();
//Get the REF.
rs = stmt.executeQuery("SELECT ref (s) FROM t1 s where s.ob1=5");
rs.next();
ref = (java.sql.Ref) rs.getRef(1); //cast the REF as a java.sql.Ref
}
//Create and execute the prepared statement.
String sqlUpdate = "update t3 s2 set col = ? where s2.col.ob1=20";
pstmt = conn.prepareStatement(sqlUpdate);
pstmt.setRef(1, ref);
pstmt.executeUpdate();

呼å‡ŗ恗åÆčƒ½ę–‡ć‚’ä½æē”Ø恗恦态REF恌ꌇē¤ŗć™ć‚‹ä½ē½®ć‚’ę›“ę–°ć™ć‚‹å “åˆćÆć€ć¾ćšć‚¹ćƒˆć‚¢ćƒ‰ćƒ»ćƒ—ćƒ­ć‚·ćƒ¼ć‚øćƒ£ć‚’ä½œęˆć—ć€ć„ćšć‚Œć‹ć®INćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æ悒čØ­å®šć—ć¦ć€OUTćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æ悒ē™»éŒ²ć—ćŸå¾Œć€ę–‡ć‚’å®Ÿč”Œć—ć¾ć™ć€‚ć‚¹ćƒˆć‚¢ćƒ‰ćƒ»ćƒ—ćƒ­ć‚·ćƒ¼ć‚øćƒ£ć§ćÆć€å®Ÿéš›ć®ä½ē½®ć‚’ęŒ‡ē¤ŗ恙悋REFå€¤ćŒę›“ę–°ć•ć‚Œć¾ć™ć€‚ä¾‹:

conn = ds.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT ref (s) FROM t1 s where s.ob1=5");
rs.next();
ref1 = (java.sql.Ref) rs.getRef(1);
// Prepare the stored procedure
sql = "{call SP1 (?, ?)}";
cstmt = conn.prepareCall(sql);
// Set IN and register OUT params
cstmt.setRef(1, ref1);
cstmt.registerOutParameter(2, getRefType(), "USER.OB");
// Execute
cstmt.execute();

ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć§REFć‚’ä½œęˆć™ć‚‹

JDBCć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć«REFć‚Ŗ惖ć‚ø悧ć‚Æ惈ćÆä½œęˆć§ćć¾ć›ć‚“ć€‚å˜ć«ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‹ć‚‰ę—¢å­˜ć®REFć‚Ŗ惖ć‚ø悧ć‚Æ惈恌ꤜē“¢ć•ć‚Œć‚‹ć ć‘ć§ć™ć€‚ćŸć ć—ć€ę–‡ć¾ćŸćÆ惗ćƒŖćƒšć‚¢ćƒ‰ę–‡ć‚’ä½æē”Øć—ć¦ć€ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć«REFć‚’ä½œęˆć§ćć¾ć™ć€‚ä¾‹:

conn = ds.getConnection();
stmt = conn.createStatement();
cmd = "create type ob as object (ob1 int, ob2 int)"
stmt.execute(cmd);
cmd = "create table t1 of type ob";
stmt.execute(cmd);
cmd = "insert into t1 values (5, 5)"
stmt.execute(cmd);
cmd = "create table t2 (col ref ob)";
stmt.execute(cmd);
cmd = "insert into t2 select ref(p) from t1 where p.ob1=5";
stmt.execute(cmd);

äøŠć®ä¾‹ć§ćÆ态ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆåž‹(ob)态恓恮ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆåž‹ć®č”Ø(t1)态obć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć‚’ē¤ŗ恙REFåˆ—ć®ć‚ć‚‹č”Ø(t2)ćŒä½œęˆć•ć‚Œć€REF恌REFåˆ—ć«ęŒæå…„ć•ć‚Œć¾ć™ć€‚REFćÆ态t1ć®č”Œć‚’ęŒ‡ć—ć¾ć™(ęœ€åˆć®åˆ—ć®å€¤ćÆ5)怂

BLOBćØCLOB悒ä½æē”Øć—ćŸćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°

恓恮ēÆ€ć§ćÆ态OracleBlobć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćøć®ć‚¢ć‚Æć‚»ć‚¹ę–¹ę³•ć‚’ē¤ŗć™ć‚µćƒ³ćƒ—ćƒ«ćƒ»ć‚³ćƒ¼ćƒ‰ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć™ć€‚WebLogic Serverć§ć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć‚’ä½æē”Øć—ć¦ć„ć‚‹å “åˆć€ć“ć®ä¾‹ć§ē¤ŗ恙꧋ꖇćÆ态OracleBlobć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć§ä½æē”Øć§ćć¾ć™ć€‚ć€ŒOracle Thin Driverć®ę‹”å¼µę©Ÿčƒ½ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćØć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć®č”Øć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


ę³Øꄏ:

BLOBćŠć‚ˆć³CLOB (怌LOB怍ćØå‘¼ć°ć‚Œć‚‹)悒ä½æē”Øć™ć‚‹å “åˆć€ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć®å¢ƒē•Œć‚’č€ƒę…®ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ćŸćØćˆć°ć€ć™ć¹ć¦ć®čŖ­å–ć‚Š/ę›øč¾¼ćæć‚’ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³å†…ć®ē‰¹å®šć®LOBć«č»¢é€ć—ć¾ć™ć€‚č©³ē“°ć«ć¤ć„恦ćÆ态Oracle Webć‚µć‚¤ćƒˆ(http://www.oracle.com)恫恂悋Oracleć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć®ć€ŒLOB Locators and Transaction Boundariesć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


DBMS恋悉BLOBćƒ­ć‚±ćƒ¼ć‚æ悒éøęŠžć™ć‚‹å•åˆć›ć‚’å®Ÿč”Œć™ć‚‹

BLOBćƒ­ć‚±ćƒ¼ć‚æć¾ćŸćÆćƒćƒ³ćƒ‰ćƒ«ćÆ态Oracle Thin Driver Blobćøć®å‚ē…§ć§ć™ć€‚

String selectBlob = "select blobCol from myTable where blobKey = 666"

WebLogic Server java.sqlć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć‚’å®£čØ€ć™ć‚‹

ę¬”ć®ć‚³ćƒ¼ćƒ‰ć§ćÆ态ConnectionćŒć™ć§ć«ē¢ŗē«‹ć•ć‚Œć¦ć„悋恓ćØć‚’å‰ęćØć—ć¦ć„ć¾ć™ć€‚

ResultSet rs = null; 
Statement myStatement = null; 
java.sql.Blob myRegularBlob = null; 
java.io.OutputStream os = null;

SQLä¾‹å¤–ćƒ–ćƒ­ćƒƒć‚Æć‚’é–‹å§‹ć™ć‚‹

恓恮try/catch惖惭惃ć‚Æ恧ćÆ态BLOBćƒ­ć‚±ćƒ¼ć‚æć‚’å–å¾—ć—ć¦ć€Oracle Blobę‹”å¼µę©Ÿčƒ½ć«ć‚¢ć‚Æć‚»ć‚¹ć—ć¾ć™ć€‚

try { 
     // get our BLOB locator.. 
     myStatement = myConnect.createStatement(); 
     rs = myStatement.executeQuery(selectBlob);
     while (rs.next()) { 
       myRegularBlob = rs.getBlob("blobCol");
}
     // Access the underlying Oracle extension functionality for
     // writing. Cast to the OracleThinBlob interface to access
     // the Oracle method.
     os = ((OracleThinBlob)myRegularBlob).getBinaryOutputStream();
     ...
     } catch (SQLException sqe) {
       System.out.println("ERROR(general SQE): " +
         sqe.getMessage()); 
     }

Oracle.ThinBlobć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć«ć‚­ćƒ£ć‚¹ćƒˆć—ćŸć‚‰ć€OraclećŒć‚µćƒćƒ¼ćƒˆć™ć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć«ć‚¢ć‚Æć‚»ć‚¹ć§ćć¾ć™ć€‚

惗ćƒŖćƒšć‚¢ćƒ‰ę–‡ć‚’ä½æē”Ø恗恟CLOBå€¤ć®ę›“ę–°

惗ćƒŖćƒšć‚¢ćƒ‰ę–‡ć‚’ä½æē”Ø恗恦CLOBć‚’ę›“ę–°ć—ć€ę–°ć—ć„å€¤ćŒä»„å‰ć®å€¤ć‚ˆć‚ŠēŸ­ć„å “åˆć€CLOB恫ćÆꛓꖰäø­ć«ę˜Žē¤ŗēš„恫ē½®ę›ć•ć‚ŒćŖć‹ć£ćŸę–‡å­—ćŒäæęŒć•ć‚Œć¾ć™ć€‚ćŸćØ恈恰态CLOB恮ē¾åœØć®å€¤ćŒabcdefghijć®å “åˆć«ć€ćƒ—ćƒŖćƒšć‚¢ćƒ‰ę–‡ć‚’ä½æē”Ø恗恦zxyw恧CLOB悒ꛓꖰ恙悋ćØ态CLOBć®å€¤ćÆzxywefghij恫ćŖć‚Šć¾ć™ć€‚ćƒ—ćƒŖćƒšć‚¢ćƒ‰ę–‡ć§ę›“ę–°ć•ć‚ŒćŸå€¤ć‚’äæ®ę­£ć™ć‚‹ć«ćÆ态dbms_lob.trimćƒ—ćƒ­ć‚·ćƒ¼ć‚øćƒ£ć‚’ä½æē”Øć—ć¦ć€ę›“ę–°å¾Œć«ę®‹ć£ćŸä½™åˆ†ćŖę–‡å­—ć‚’å‰Šé™¤ć—ć¾ć™ć€‚dbms_lob.trimćƒ—ćƒ­ć‚·ćƒ¼ć‚øćƒ£ć®č©³ē“°ć«ć¤ć„恦ćÆ态Oracleć®ćƒ‰ć‚­ćƒ„ćƒ”ćƒ³ćƒˆć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚

ć•ć¾ć–ć¾ćŖćƒćƒ¼ć‚øćƒ§ćƒ³ć®WebLogic Serverć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆ/ć‚µćƒ¼ćƒćƒ¼é–“ć«ćŠć‘ć‚‹APIę‹”å¼µę©Ÿčƒ½ć®ć‚µćƒćƒ¼ćƒˆ

äø€čˆ¬ć«ć€WebLogic ServerćÆAPIę‹”å¼µę©Ÿčƒ½ć®ć‚µćƒ¼ćƒćƒ¼å“ć‚³ćƒ¼ćƒ‰ć§ć®ä½æē”Øć‚’ć‚µćƒćƒ¼ćƒˆć—ć¦ć„ć¾ć™ć€‚APIę‹”å¼µę©Ÿčƒ½ć‚’ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆå“ć‚³ćƒ¼ćƒ‰ć§ä½æē”Ø恙悋恫ćÆ态ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆåž‹ć¾ćŸćÆćƒ‡ćƒ¼ć‚æåž‹ćŒć‚·ćƒŖć‚¢ćƒ©ć‚¤ć‚ŗåÆčƒ½ć§ćŖ恑悌恰ćŖć‚Šć¾ć›ć‚“ć€‚ć“ć‚Œć«åÆ¾ć™ć‚‹ä¾‹å¤–ćØ恗恦态仄äø‹ć®ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆåž‹ćŒć‚ć‚Šć¾ć™ć€‚

  • CLOB

  • BLOB

  • InputStream

  • OutputStream

ć“ć‚Œć‚‰ć®ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆåž‹ć«ć¤ć„ć¦ćÆWebLogic Serverć§ćƒ‡ć‚·ćƒŖć‚¢ćƒ©ć‚¤ć‚¼ćƒ¼ć‚·ćƒ§ćƒ³ćŒč”Œć‚ć‚Œć‚‹ć®ć§ć€ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆå“ć‚³ćƒ¼ćƒ‰ć§ä½æē”Øć§ćć¾ć™ć€‚

WebLogic Serverć§ć®ćƒ™ćƒ³ćƒ€ćƒ¼ć®JDBCę‹”å¼µę©Ÿčƒ½ć®ć‚µćƒćƒ¼ćƒˆę–¹ę³•ćÆWebLogic Server 8.1ć§å¤‰ę›“ć•ć‚Œć¾ć—ćŸć€‚ćć®å½±éŸæć§ć€ć•ć¾ć–ć¾ćŖćƒćƒ¼ć‚øćƒ§ćƒ³ć®ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆ/ć‚µćƒ¼ćƒćƒ¼é–“ć®ē›øäŗ’運ē”Øę€§ćŒå¤‰ę›“ć•ć‚Œć¦ć„ć¾ć™ć€‚WebLogic Server 8.1ä»„é™ć®ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćŒWebLogic Server 7.0ä»„å‰ć®ć‚µćƒ¼ćƒćƒ¼ćØåÆ¾č©±ć™ć‚‹å “åˆć€Oracleę‹”å¼µę©Ÿčƒ½ćÆć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć›ć‚“ć€‚ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćƒ»ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§JDBCć‚Ŗ惖ć‚ø悧ć‚Æ惈悒Oracleę‹”å¼µę©Ÿčƒ½ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć«ć‚­ćƒ£ć‚¹ćƒˆć—ć‚ˆć†ćØ恙悋ćØ态ClassCastExceptionć‚’å—ć‘å–ć‚Šć¾ć™ć€‚ćŸć ć—ć€WebLogic Server 7.0ä»„å‰ć®ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆćŒWebLogic Server 8.1ä»„é™ć®ć‚µćƒ¼ćƒćƒ¼ćØåÆ¾č©±ć™ć‚‹å “åˆć€Oracleę‹”å¼µę©Ÿčƒ½ćÆć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć™ć€‚


ę³Øꄏ:

weblogic.jdbc.vendor.oracle.*ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Øć§ć™ć€‚å°†ę„ć®WebLogic ServerćƒŖćƒŖćƒ¼ć‚¹ć§ćÆå‰Šé™¤ć•ć‚Œć‚‹ć“ćØćŒć‚ć‚Šć¾ć™ć€‚ęؙęŗ–恮JDBCć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ态ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć¾ćŸćÆć‚µćƒ¼ćƒćƒ¼ć®ćƒćƒ¼ć‚øćƒ§ćƒ³ć«é–¢äæ‚ćŖćć‚µćƒćƒ¼ćƒˆć•ć‚Œć¾ć™ć€‚


Oracle Thin Driverć®ę‹”å¼µę©Ÿčƒ½ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćØć‚µćƒćƒ¼ćƒˆć•ć‚Œć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć®č”Ø

ä»„å‰ć®ćƒŖćƒŖćƒ¼ć‚¹ć®WebLogic Server恧ćÆ态仄äø‹ć®č”Ø恫ē¤ŗ恙JDBCę‹”å¼µę©Ÿčƒ½ć®ćæćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć¾ć—ćŸć€‚ē¾åœØ恮ćƒŖćƒŖćƒ¼ć‚¹ć®WebLogic ServerćÆć€ćƒ™ćƒ³ćƒ€ćƒ¼ć®JDBCćƒ‰ćƒ©ć‚¤ćƒć§ćƒ‘ćƒ–ćƒŖ惃ć‚Æćƒ»ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćØć—ć¦å…¬é–‹ć•ć‚Œć¦ć„ć‚‹ć»ćØć‚“ć©ć®ę‹”å¼µę©Ÿčƒ½ćƒ”ć‚½ćƒƒćƒ‰ć‚’ć‚µćƒćƒ¼ćƒˆć—ć¾ć™ć€‚APIę‹”å¼µę©Ÿčƒ½ć®ä½æē”Øꉋ順恫恤恄恦ćÆ态怌JDBCć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć®APIę‹”å¼µę©Ÿčƒ½ć®ä½æć„ę–¹ć€ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚APIę‹”å¼µę©Ÿčƒ½ć‚’ć‚µćƒćƒ¼ćƒˆć™ć‚‹ćŸć‚ć®ę–°ć—ć„å†…éƒØćƒ”ć‚«ćƒ‹ć‚ŗ惠ćÆä»„å‰ć®å®Ÿč£…ć«ä¾å­˜ć—ć¦ć„ćŖ恄恟悁态äø€éƒØć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆäøč¦ć«ćŖć£ć¦éžęŽØå„ØćØćŖć‚Šć¾ć—ćŸć€‚ć“ć‚Œć‚‰ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆWebLogic Serverć®ä»Šå¾Œć®ćƒŖćƒŖćƒ¼ć‚¹ć§å‰Šé™¤ć•ć‚Œć‚‹äŗˆå®šć§ć™ć€‚č”Ø7-1ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚č”Ø恫ē¤ŗć•ć‚ŒćŸä»£ć‚ć‚Šć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä½æē”Ø恙悋恓ćØć‚’ćŠč–¦ć‚ć—ć¾ć™ć€‚

č”Ø7-1 Oracle JDBCę‹”å¼µę©Ÿčƒ½ć®éžęŽØå„Ø恫ćŖć£ćŸć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹

č|ƒ
非ęŽØå„Øć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‹ć‚ć‚Šć«ä½æē”Ø恙悋Oracleć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹
weblogic.jdbc.vendor.oracle.
OracleConnection
oracle.jdbc.OracleConnection
weblogic.jdbc.vendor.oracle.
OracleStatement  
oracle.jdbc.OracleStatement
weblogic.jdbc.vendor.oracle.
OracleCallableStatement 
oracle.jdbc.OracleCallableStatement
weblogic.jdbc.vendor.oracle.
OraclePreparedStatement 
oracle.jdbc.OraclePreparedStatement
weblogic.jdbc.vendor.oracle.
OracleResultSet 
oracle.jdbc.OracleResultSet

weblogic.jdbc.vendor.oracle.OracleArray

oracle.jdbc.OracleArray

weblogic.jdbc.vendor.oracle.OracleStruct

oracle.jdbc.OracleStruct

weblogic.jdbc.vendor.oracle.OracleRef

oracle.jdbc.OracleRef

weblogic.jdbc.vendor.oracle.OracleThinClob

oracle.jdbc.OracleBlob

weblogic.jdbc.vendor.oracle.OracleThinBlob

oracle.jdbc.OracleClob


Oracleć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ä»„äø‹ć®č”Ø恫ē¤ŗć—ć¾ć™ć€‚ć¾ćŸć€ęؙęŗ–JDBC (java.sql.*)ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ć‚’ę‹”å¼µć™ć‚‹ćŸć‚ć«Oracle Thin Driver (ć¾ćŸćÆć“ć‚Œć‚‰ć®ćƒ”ć‚½ćƒƒćƒ‰ć‚’ć‚µćƒćƒ¼ćƒˆć™ć‚‹ä»–ć®ćƒ‰ćƒ©ć‚¤ćƒ)恧ä½æē”Øć™ć‚‹ćƒ”ć‚½ćƒƒćƒ‰ć®ć†ć”ć€ć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć‚‹ć‚‚ć®ć«ć¤ć„ć¦ć‚‚ē¤ŗć—ć¾ć™ć€‚

č”Ø7-2 OracleConnectionć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(非ęŽØå„Ø)

ę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ćƒ»ć‚·ć‚°ćƒćƒćƒ£

weblogic.jdbc.vendor.oracle.OracleConnection

ę‹”å¼µ

java.sql.Connectionć®ę‹”å¼µ

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

void clearClientIdentifier(String s) 
   throws java.sql.SQLException;

boolean getAutoClose() 
   throws java.sql.SQLException;

String getDatabaseProductVersion()
   throws java.sql.SQLException;

String getProtocolType() throws
   java.sql.SQLException;

String getURL() throws java.sql.SQLException;

String getUserName()
   throws java.sql.SQLException;

boolean getBigEndian() 
   throws java.sql.SQLException;

boolean getDefaultAutoRefetch() throws
   java.sql.SQLException;

boolean getIncludeSynonyms()
   throws java.sql.SQLException;

boolean getRemarksReporting()
   throws java.sql.SQLException;

boolean getReportRemarks() 
   throws java.sql.SQLException;

weblogic.jdbc.vendor.oracle.OracleConnection

ę‹”å¼µ

java.sql.Connectionć®ę‹”å¼µ

(ē¶šć)

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

boolean getRestrictGetTables()
   throws java.sql.SQLException;

boolean getUsingXAFlag()
   throws java.sql.SQLException;

boolean getXAErrorFlag() 
   throws java.sql.SQLException;

boolean isCompatibleTo816()
   throws java.sql.SQLException;
   (Deprecated)

byte[] getFDO(boolean b) 
   throws java.sql.SQLException;

int getDefaultExecuteBatch() throws 
   java.sql.SQLException;

int getDefaultRowPrefetch() 
   throws java.sql.SQLException;

int getStmtCacheSize() 
   throws java.sql.SQLException;

java.util.Properties getDBAccessProperties()
   throws java.sql.SQLException;

short getDbCsId() throws java.sql.SQLException;
short getJdbcCsId() throws java.sql.SQLException;
short getStructAttrCsId() 
   throws java.sql.SQLException;
short getVersionNumber() 
   throws java.sql.SQLException;

void archive(int i, int j, String s) 
   throws java.sql.SQLException;

weblogic.jdbc.vendor.oracle.OracleConnection

ę‹”å¼µ

java.sql.Connectionć®ę‹”å¼µ

(ē¶šć)

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

void close_statements() 
   throws java.sql.SQLException;

void initUserName() throws java.sql.SQLException;

void logicalClose() throws java.sql.SQLException;

void needLine() throws java.sql.SQLException;

void printState() throws java.sql.SQLException;

void registerSQLType(String s, String t) 
   throws java.sql.SQLException;

void releaseLine() throws java.sql.SQLException;  

void removeAllDescriptor() 
   throws java.sql.SQLException;

void removeDescriptor(String s) 
   throws java.sql.SQLException;

void setAutoClose(boolean on) throws
   java.sql.SQLException;

void setClientIdentifier(String s) 
   throws java.sql.SQLException;

void clearClientIdentifier(String s) throws java.sql.SQLException;

void setDefaultAutoRefetch(boolean b)
   throws java.sql.SQLException;

void setDefaultExecuteBatch(int i) 
   throws java.sql.SQLException;

void setDefaultRowPrefetch(int i) 
   throws java.sql.SQLException;

void setFDO(byte[] b) 
   throws java.sql.SQLException;

void setIncludeSynonyms(boolean b) 
   throws java.sql.SQLException;

weblogic.jdbc.vendor.oracle.OracleConnection

ę‹”å¼µ

java.sql.Connectionć®ę‹”å¼µ

(ē¶šć)

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

void setPhysicalStatus(boolean b) 
   throws java.sql.SQLException;

void setRemarksReporting(boolean b) 
   throws java.sql.SQLException;

void setRestrictGetTables(boolean b) 
   throws java.sql.SQLException;

void setStmtCacheSize(int i) 
   throws java.sql.SQLException;

void setStmtCacheSize(int i, boolean b) 
   throws java.sql.SQLException;

void setUsingXAFlag(boolean b) 
   throws java.sql.SQLException;

void setXAErrorFlag(boolean b) 
   throws java.sql.SQLException;

void shutdown(int i) 
   throws java.sql.SQLException;

void startup(String s, int i)
       throws java.sql.SQLException;

č”Ø7-3 OracleStatementć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(非ęŽØå„Ø)

ę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ćƒ»ć‚·ć‚°ćƒćƒćƒ£

weblogic.jdbc.vendor.oracle.OracleStatement

ę‹”å¼µ

java.sql.Statement

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

String getOriginalSql() 
   throws java.sql.SQLException;
   (Removed in Oracle 11g.)

String getRevisedSql() 
   throws java.sql.SQLException;
   (Deprecated in Oracle 8.1.7, removed in Oracle 9i.)

boolean getAutoRefetch() 
   throws java.sql.SQLException;

boolean is_value_null(boolean b, int i) 
   throws java.sql.SQLException;

byte getSqlKind() 
   throws java.sql.SQLException;

int creationState() 
   throws java.sql.SQLException;

int getAutoRollback() 
   throws java.sql.SQLException;
   (Deprecated)

int getRowPrefetch() 
   throws java.sql.SQLException;

int getWaitOption() 
   throws java.sql.SQLException;
   (Deprecated)

int sendBatch() 
   throws java.sql.SQLException;

weblogic.jdbc.vendor.oracle.OracleStatement

ę‹”å¼µ

java.sql.Statement

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

void clearDefines() 
   throws java.sql.SQLException;

void defineColumnType(int i, int j) 
   throws java.sql.SQLException;

void defineColumnType(int i, int j, String s)
   throws java.sql.SQLException;

void defineColumnType(int i, int j, int k) 
   throws java.sql.SQLException;

void describe() 
   throws java.sql.SQLException;

void setAutoRefetch(boolean b) 
   throws java.sql.SQLException;

void setAutoRollback(int i) 
   throws java.sql.SQLException;
   (Deprecated)

void setRowPrefetch(int i) 
   throws java.sql.SQLException;

void setWaitOption(int i) 
   throws java.sql.SQLException;
   (Deprecated)

č”Ø7-4 OracleResultSetć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(非ęŽØå„Ø)

ę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ćƒ»ć‚·ć‚°ćƒćƒćƒ£

weblogic.jdbc.vendor.oracle.OracleResultSet

ę‹”å¼µ

java.sql.ResultSetć®ę‹”å¼µ

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

boolean getAutoRefetch()
   throws java.sql.SQLException;

int getFirstUserColumnIndex() 
   throws java.sql.SQLException;

void closeStatementOnClose() 
   throws java.sql.SQLException;

void setAutoRefetch(boolean b) 
   throws java.sql.SQLException;

java.sql.ResultSet getCursor(int n) 
   throws java.sql.SQLException;

java.sql.ResultSet getCURSOR(String s) 
   throws java.sql.SQLException;

č”Ø7-5 OracleCallableStatementć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(非ęŽØå„Ø)

ę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ćƒ»ć‚·ć‚°ćƒćƒćƒ£

weblogic.jdbc.vendor.oracle.OracleCallableStatement

ę‹”å¼µ

java.sql.CallableStatementć®ę‹”å¼µ

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

void clearParameters() 
   throws java.sql.SQLException;

void registerIndexTableOutParameter(int i, 
      int j, int k, int l) 
   throws java.sql.SQLException;

void registerOutParameter
   (int i, int j, int k, int l) 
   throws java.sql.SQLException;

java.sql.ResultSet getCursor(int i) 
   throws java.sql.SQLException;

java.io.InputStream getAsciiStream(int i)
   throws java.sql.SQLException;

java.io.InputStream getBinaryStream(int i)
   throws java.sql.SQLException;

java.io.InputStream getUnicodeStream(int i)
   throws java.sql.SQLException;

č”Ø7-6 OraclePreparedStatementć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(非ęŽØå„Ø)

ę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ćƒ»ć‚·ć‚°ćƒćƒćƒ£

weblogic.jdbc.vendor.oracle.OraclePreparedStatement

ę‹”å¼µ

OracleStatementćŠć‚ˆć³java.sql.PreparedStatementć®ę‹”å¼µ

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

int getExecuteBatch() 
   throws java.sql.SQLException;

void defineParameterType(int i, int j, int k) 
   throws java.sql.SQLException;

void setDisableStmtCaching(boolean b) 
   throws java.sql.SQLException;

void setExecuteBatch(int i) 
   throws java.sql.SQLException;

void setFixedCHAR(int i, String s) 
   throws java.sql.SQLException;

void setInternalBytes(int i, byte[] b, int j)
   throws java.sql.SQLException;

č”Ø7-7 OracleArrayć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(非ęŽØå„Ø)

ę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ćƒ»ć‚·ć‚°ćƒćƒćƒ£

weblogic.jdbc.vendor.oracle.OracleArray

ę‹”å¼µ

java.sql.Arrayć®ę‹”å¼µ

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂

public ArrayDescriptor getDescriptor() 
   throws java.sql.SQLException;

public Datum[] getOracleArray() 
   throws SQLException;

public Datum[] getOracleArray(long l, int i) 
   throws SQLException;

public String getSQLTypeName()
   throws java.sql.SQLException;

public int length()
   throws java.sql.SQLException;

public double[] getDoubleArray()
   throws java.sql.SQLException;

public double[] getDoubleArray(long l, int i)
   throws java.sql.SQLException;

public float[] getFloatArray()
   throws java.sql.SQLException;

public float[] getFloatArray(long l, int i)
   throws java.sql.SQLException;

public int[] getIntArray()
   throws java.sql.SQLException;

public int[] getIntArray(long l, int i)
   throws java.sql.SQLException;

public long[] getLongArray()
   throws java.sql.SQLException;

public long[] getLongArray(long l, int i)
   throws java.sql.SQLException;

weblogic.jdbc.vendor.oracle.OracleArray

ę‹”å¼µ

java.sql.Arrayć®ę‹”å¼µ

(ē¶šć)

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

public short[] getShortArray()
   throws java.sql.SQLException;

public short[] getShortArray(long l, int i)
   throws java.sql.SQLException;

public void setAutoBuffering(boolean flag)
   throws java.sql.SQLException;

public void setAutoIndexing(boolean flag)
   throws java.sql.SQLException;

public boolean getAutoBuffering()
   throws java.sql.SQLException;

public boolean getAutoIndexing()
   throws java.sql.SQLException;

public void setAutoIndexing(boolean flag, int i)
   throws java.sql.SQLException;

č”Ø7-8 OracleStructć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(非ęŽØå„Ø)

ę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ćƒ»ć‚·ć‚°ćƒćƒćƒ£

weblogic.jdbc.vendor.oracle.OracleStruct

ę‹”å¼µ

java.sql.Structć®ę‹”å¼µ

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

public Object[] getAttributes() 
   throws java.sql.SQLException;

public Object[] getAttributes(java.util.Dictionary map)
   throws java.sql.SQLException; 

public Datum[] getOracleAttributes() 
   throws java.sql.SQLException;

public oracle.sql.StructDescriptor getDescriptor() 
   throws java.sql.SQLException;

public String getSQLTypeName() 
   throws java.sql.SQLException;

public void setAutoBuffering(boolean flag) 
   throws java.sql.SQLException;

public boolean getAutoBuffering() 
   throws java.sql.SQLException;

č”Ø7-9 OracleRefć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(非ęŽØå„Ø)

ę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ćƒ»ć‚·ć‚°ćƒćƒćƒ£

weblogic.jdbc.vendor.oracle.OracleRef

ę‹”å¼µ

java.sql.Refć®ę‹”å¼µ

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

public String getBaseTypeName() 
   throws SQLException;

public oracle.sql.StructDescriptor getDescriptor() 
   throws SQLException;

public oracle.sql.STRUCT getSTRUCT() 
   throws SQLException;

public Object getValue() 
   throws SQLException;

public Object getValue(Map map) 
   throws SQLException;

public void setValue(Object obj) 
   throws SQLException;

č”Ø7-10 OracleThinBlobć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(非ęŽØå„Ø)

ę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ćƒ»ć‚·ć‚°ćƒćƒćƒ£

weblogic.jdbc.vendor.oracle.OracleThinBlob

ę‹”å¼µ

java.sql.Blobć®ę‹”å¼µ

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

int getBufferSize()throws java.sql.Exception

int getChunkSize()throws java.sql.Exception

int putBytes(long, int, byte[])throws java.sql.Exception

int getBinaryOutputStream()throws java.sql.Exception

č”Ø7-11 OracleThinClobć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹(非ęŽØå„Ø)

ę‹”å¼µćƒ”ć‚½ćƒƒćƒ‰ćƒ»ć‚·ć‚°ćƒćƒćƒ£

weblogic.jdbc.vendor.oracle.OracleThinClob

ę‹”å¼µ

java.sql.Clobć®ę‹”å¼µ

(ć“ć®ć‚¤ćƒ³ć‚æćƒ•ć‚§ćƒ¼ć‚¹ćÆ非ęŽØå„Ø怂)

public OutputStream getAsciiOutputStream()
   throws java.sql.Exception;

public Writer getCharacterOutputStream()
   throws java.sql.Exception;

public int getBufferSize() throws java.sql.Exception;

public int getChunkSize() throws java.sql.Exception;

public char[] getChars(long l, int i)
   throws java.sql.Exception;

public int putChars(long start, char myChars[])
   throws java.sql.Exception;

public int putString(long l, String s)
         throws java.sql.Exception;  

Oracle Thin Driverć§ć®ćƒćƒƒćƒå‡¦ē†ć®ä½æē”Ø

ē‰¹å®šć®ēŠ¶ę³äø‹ć§ć€Oracle Thin DriverćÆćƒćƒƒćƒćƒ»ć‚µć‚¤ć‚ŗć«åˆ°é”ć—ćŖ恄間态DBMS恫ꛓꖰ悒送äæ”ć›ćšć€ę–‡ćŒé–‰ć˜ć‚‰ć‚Œć‚‹ć¾ć§å¾…ę©Ÿć™ć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚

惗ćƒŖćƒšć‚¢ćƒ‰ę–‡ć‚’é–‰ć˜ć‚‹ćØ态WebLogic ServerćÆę–‡ć‚’é–‰ć˜ćšć«ęؙęŗ–JDBCēŠ¶ę…‹ć«čæ”ć—ć¾ć™ć€‚ē¶šć„恦ꖇ悒ꎄē¶šć®ć‚­ćƒ£ćƒƒć‚·ćƒ„ć«ęˆ»ć™ćŸć‚ć€ę¬”ć«åæ…要ćŖę™‚ć«ę–‡ć‚’å†é…äæ”ć§ćć¾ć™ć€‚

ć™ć¹ć¦ć®ę›“ę–°ćŒē¢ŗå®Ÿć«é…äæ”ć•ć‚Œć‚‹ć‚ˆć†ć«ć™ć‚‹ć«ćÆć€ę–‡ć¾ćŸćÆꎄē¶šć‚’é–‰ć˜ć‚‹å‰ć«ć€ę–‡ć‚’ęœ€å¾Œć«ä½æē”Øć—ćŸå¾Œć§sendBatch()悒꘎ē¤ŗēš„ć«å‘¼ć³å‡ŗ恙åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚

Oracleä»®ęƒ³ćƒ—ćƒ©ć‚¤ćƒ™ćƒ¼ćƒˆćƒ»ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ć‚’ä½æē”Øć—ćŸćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°

Oracleä»®ęƒ³ćƒ—ćƒ©ć‚¤ćƒ™ćƒ¼ćƒˆćƒ»ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹(Oracle Virtual Private Database: VPD)ćÆć€ć‚µćƒ¼ćƒćƒ¼ć«ć‚ˆć£ć¦å¼·åˆ¶ć•ć‚Œć‚‹ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³å®šē¾©ć®ćƒ•ć‚”ć‚¤ćƒ³ćƒ»ć‚°ćƒ¬ć‚¤ćƒ³ćƒ»ć‚¢ć‚Æć‚»ć‚¹åˆ¶å¾”ćØ态Oraclećƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹ćƒ»ć‚µćƒ¼ćƒćƒ¼ć®ć‚»ć‚­ćƒ„ć‚¢ćŖć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ćƒ»ć‚³ćƒ³ćƒ†ć‚­ć‚¹ćƒˆć‚’ēµ„ćæåˆć‚ć›ćŸć‚‚ć®ć§ć™ć€‚WebLogic Serverć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§VPD悒ä½æē”Ø恙悋恫ćÆ态仄äø‹ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

  1. WebLogic Server꧋ꈐ恧Oracle Thinćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Ø恙悋JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć‚’ä½œęˆć—ć¾ć™ć€‚ē¬¬2ē« ć€Œć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ć®WebLogic JDBC恮ä½æć„ę–¹ć€ć‹ć€ć¾ćŸćÆOracle WebLogic Serverē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ćƒ»ćƒ˜ćƒ«ćƒ—恮JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹ć®ä½œęˆć«é–¢ć™ć‚‹é …ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


    ę³Øꄏ:

    XAåƾåæœć®JDBCćƒ‰ćƒ©ć‚¤ćƒć‚’ä½æē”Øć—ć¦ć„ć‚‹å “åˆć€KeepXAConnTillTxComplete=true恫čØ­å®šć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚Oracle WebLogic Serverē®”ē†ć‚³ćƒ³ć‚½ćƒ¼ćƒ«ćƒ»ćƒ˜ćƒ«ćƒ—恮JDBCćƒ‡ćƒ¼ć‚æćƒ»ć‚½ćƒ¼ć‚¹: ꧋ꈐ: ꎄē¶šćƒ—ćƒ¼ćƒ«ć‚’å‚ē…§ć—ć¦ćć ć•ć„ć€‚


  2. ć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§ę¬”ć®ć‚³ćƒ¼ćƒ‰ć‚’å®Ÿč”Œć—ć¾ć™ć€‚

    import weblogic.jdbc.extensions.WLConnection
    // get a connection from a WLS JDBC data source
    Connection conn = ds.getConnection();
    // Get the underlying vendor connection object
    oracle.jdbc.OracleConnection orConn = (oracle.jdbc.OracleConnection)
    (((WLConnection)conn).getVendorConnection());
    // Set CLIENT_IDENTIFIER (which will be accessible from 
    // USERENV naming context on the database server side)
    orConn.setClientIdentifier(clientId);
    /* perform application specific work, preferably using conn instead of orConn */
    // clean up connection before returning to WLS JDBC data source
    orConn.clearClientIdentifier(clientId);
    // As soon as you are finished with vendor-specific calls,  
    // nullify the reference to the physical connection. 
    orConn = null; 
    // close the pooled connection
    conn.close();
    

    ę³Øꄏ:

    ć“ć®ć‚³ćƒ¼ćƒ‰ć§ćÆć€ćƒ—ćƒ¼ćƒ«ć•ć‚ŒćŸ(č«–ē†ēš„ćŖ)ꎄē¶šć‹ć‚‰å¾—ćŸåŸŗåŗ•ć®ē‰©ē†ēš„ćŖꎄē¶šć‚’ä½æē”Øć—ć¾ć™ć€‚


WebLogic Server恧恮Oracle VPD恮ä½æē”Ø

WebLogic Server恧ćÆ态oracle.jdbc.OracleConnection.setClientIdentitfierćƒ”ć‚½ćƒƒćƒ‰ćØoracle.jdbc.OracleConnection.clearClientIndentifierćƒ”ć‚½ćƒƒćƒ‰ćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć¾ć™ć€‚ć“ć‚Œć‚‰ć‚’ä½æē”Ø恙悋ćØć€ćƒ—ćƒ¼ćƒ«ć•ć‚ŒćŸęŽ„ē¶šć‹ć‚‰åŸŗåŗ•ć®ē‰©ē†ēš„ꎄē¶šć‚’ä½æē”Ø恛恚恫ęøˆćæć¾ć™ć€‚WebLogic Serverć‚¢ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ć§VPD悒ä½æē”Ø恙悋恫ćÆ态仄äø‹ć®ę‰‹é †ć«å¾“ć„ć¾ć™ć€‚

import weblogic.jdbc.vendor.oracle.OracleConnection;
// get a connection from a WLS JDBC data source
Connection conn = ds.getConnection();
// cast to the Oracle extension and set CLIENT_IDENTIFIER
// (which will be accessible from USERENV naming context on
//  the database server side)
 ((weblogic.jdbc.vendor.oracle.OracleConnection)conn).setClientIdentifier(clientId);
/* perform application specific work */
// clean up connection before returning to WLS JDBC data source
((OracleConnection)conn).clearClientIdentifier(clientId);
// close the connection
conn.close();
PKł‰ĖŒ÷|č|PK ‰±-Aoa«,mimetypePK‰±-AW½H&”:iTunesMetadata.plistPK‰±-AYuģēāMETA-INF/container.xmlPK‰±-A»ŻÓK ZZ;OEBPS/performance.htmPK‰±-A[×ßpTO‰`OEBPS/cover.htmPK‰±-Aū„ś®:©: cOEBPS/dd.htmPK‰±-A°ŌÕ)$žOEBPS/title.htmPK‰±-AĆļE©1¤1h·OEBPS/intro.htmPK‰±-AröõķŌĻNéOEBPS/preface.htmPK‰±-ANG œ/—/aśOEBPS/programming.htmPK‰±-AwöūŹŻŲ @*OEBPS/toc.ncxPK‰±-AC>¦$**X:OEBPS/troubleshooting.htmPK‰±-A¾u“¦”ĆdOEBPS/content.opfPK‰±-A¦ųjQŒ†‚†Ø}OEBPS/ds_annotation.htmPK‰±-Aœ_£ć yOEBPS/dcommon/prodbig.gifPK‰±-AĻY@¹ Ī OEBPS/dcommon/doclib.gifPK‰±-A·Ńó‘¢ww# OEBPS/dcommon/oracle-logo.jpgPK‰±-Aüļü³¤Ÿ„OEBPS/dcommon/contbig.gifPK‰±-Aū‰OEBPS/dcommon/darbbook.cssPK‰±-AMĪ¬Ü"×"!HŠOEBPS/dcommon/O_signature_clr.JPGPK‰±-A³PzŲ s­OEBPS/dcommon/feedbck2.gifPK‰±-Aė-“ÅĶČĖ®OEBPS/dcommon/feedback.gifPK‰±-AĖ5’ąµOEBPS/dcommon/booklist.gifPK‰±-AŗNź61C·OEBPS/dcommon/cpyr.htmPK‰±-AŅ!:·3.½ÉOEBPS/dcommon/masterix.gifPK‰±-AeÓŗ³1,8ĖOEBPS/dcommon/doccd.cssPK‰±-Aæź7 įÜ®ĶOEBPS/dcommon/larrow.gifPK‰±-AśŖ„#ÕĻOEBPS/dcommon/indxicon.gifPK‰±-A×ĶS«'"@ŅOEBPS/dcommon/leftnav.gifPK‰±-Ahu,­ÕŠ®ÓOEBPS/dcommon/uarrow.gifPK‰±-Al-ķƒOJÉÖOEBPS/dcommon/oracle.gifPK‰±-A(żžü^ßOEBPS/dcommon/index.gifPK‰±-AéöGCŁ Ō ¤ąOEBPS/dcommon/bookbig.gifPK‰±-A£JV^ÕŠÄźOEBPS/dcommon/rarrow.gifPK‰±-Ażęž°pkßģOEBPS/dcommon/mix.gifPK‰±-Ao"nR M ’ļOEBPS/dcommon/doccd_epub.jsPK‰±-Av I’ -śOEBPS/dcommon/toc.gifPK‰±-Aé r~$zūOEBPS/dcommon/topnav.gifPK‰±-A1ż„FAäüOEBPS/dcommon/prodicon.gifPK‰±-A3š“( # rOEBPS/dcommon/bp_layout.cssPK‰±-Ax[Ø?:ć OEBPS/dcommon/bookicon.gifPK‰±-Apµ*¤c^jOEBPS/dcommon/conticon.gifPK‰±-A²Źø³OEBPS/dcommon/blafdoc.cssPK‰±-A‘+&.OEBPS/dcommon/rightnav.gifPK‰±-AjÓeõ8š8‡/OEBPS/dcommon/oracle-small.JPGPK‰±-A¤Ž‡{&!ČhOEBPS/dcommon/help.gifPK‰±-AE¹›ėRZMZ 2jOEBPS/toc.htmPK‰±-AĪ¦ŒĢ\6W6æÄOEBPS/phys_conr.htmPK‰±-A"Ē½\ūOEBPS/rmidriver.htmPK‰±-AõßPUZĶFĶd}OEBPS/rowsets.htmPK‰±-Ał‰ĖŒ÷|č|żJOEBPS/thirdparty.htmPK33 6Č