|
|
|
[JDBC,ORACLE] получение OCISvcCtxHandle из oci connection
|
|||
|---|---|---|---|
|
#18+
Может кому нибудь пригодиться: Hашел способ как получить OCISvcCtxHandle из jdbc (если коннектимся через oci драйвер). OCISvcCtxHandle это фактически hanlde открытой сессии, его можно передать в native dll(с помощью JNI) и обеспечить работу legacy кода в одной транзакци с java кодом . Например к SvcCtx умеет подсоединяться TOracleSession из библиотеки DOA для Delphi . Для C++ можно использовать OCI функции. package pool.test; import oracle.jdbc.oci.OracleOCIConnection; import oracle.jdbc.pool.OracleOCIConnectionPool; import java.sql.Connection; import java.sql.SQLException; public class TestPool { public static void main(String[] args) throws SQLException { // вариант получения коннетов через пул // можно и без пула, как обычно через connectionFactory OracleOCIConnectionPool ociConnectionPool = new OracleOCIConnectionPool(); ociConnectionPool.setUser("scott"); ociConnectionPool.setPassword("tiger"); ociConnectionPool.setURL("jdbc:oracle:oci:@class.asulr.tst.mps"); // tns базы java.util.Properties poolProps = new java.util.Properties(); poolProps.put(OracleOCIConnectionPool.CONNPOOL_MIN_LIMIT, "2"); poolProps.put(OracleOCIConnectionPool.CONNPOOL_MAX_LIMIT, "5"); poolProps.put(OracleOCIConnectionPool.CONNPOOL_INCREMENT, "2"); poolProps.put(OracleOCIConnectionPool.CONNPOOL_TIMEOUT, "10"); poolProps.put(OracleOCIConnectionPool.CONNPOOL_NOWAIT, "true"); ociConnectionPool.setPoolConfig(poolProps); //OCIDBAccess ocidbAccess = (OCIDBAccess) conn1.db_access; // Connection connection = ociConnectionPool.getConnection(); if (connection instanceof OracleOCIConnection) { OracleOCIConnection conn1 = (OracleOCIConnection) connection; java.util.Properties dbAccessProperties = new java.util.Properties(); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Вот ОНО!!!!!!!!!!!!!!!!!!!!!! dbAccessProperties = conn1.getDBAccessProperties(); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // передаем OCISvcCtxHandle в Native код // dbAccessProperties.get("OCISvcCtxHandle"); System.out.println("dbAccessProperties= " + dbAccessProperties.toString()); } else { // } // закрываем коннект connection.close(); } } output: dbAccessProperties= {ClientCharSet=871, OCISvcCtxHandle=51399952, OCIErrHandle=51400124, OCIEnvHandle=51232528} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 20:18 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=783&tid=2151515]: |
0ms |
get settings: |
9ms |
get forum list: |
24ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
13ms |
get forum data: |
6ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 419ms |

| 0 / 0 |
