Multiple jdbc credentials : setting AM pool config parameters on runtime
Hi
was working with multiple jdbc credentials. In the custom JDBC cookie session factory, i try to set my AM configuration parameters , and pass this on to the env info provider , as instructed in the samples. But if i try to pass the JDBC Name , or configuration parameter etc , it refuses to recognize the connection. I have to specify the DB username, DB password and jdbc connection url string for the settings to actually take effect.
I tried using data sources as well, but it in vain.
Is this probably a bug , or is this an issue with how i have implemented it.
code sample with createSessionCookie method of customJDBCSessionCookieFactory:-
Hashtable env = pool.getEnvironment();
env.remove(Configuration.DB_USERNAME_PROPERTY);
env.remove(Configuration.DB_PASSWORD_PROPERTY);
env.remove(Configuration.DB_CONNECT_STRING_PROPERTY);
env.remove(Configuration.JDBC_CONNECTION_NAME);
pool.setUserData(null);
EnvInfoProvider provider = null;
String dbSID = (String)request.getAttribute("dbSID");
if(dbSID.equalsIgnoreCase("SID1")){
provider = new DynamicJDBCEnvInfoProvider( "myJDBCName");
session.setAttribute( Configuration.JDBC_CONNECTION_NAME, "myJDBCName");
cookie.setEnvInfoProvider(provider);
.............................................................
KUBA - were you able to resolve these issues and if so are there any lessons learned you can share?
I'm hoping someone from the ADF team can answer our original question including guidelines for setting pool parameters and how to monitor the pool's performance while running in production.
thanks
Similar Messages
-
How to set App Module Config parameters at run time?
Hi,
I am using jdev 11.1.1.3 and developed a Fusion Web Application application.
Before moving the code to production I want to have a stress testing where I should be able to set the application module configuration parameters at run time.
So I would like to know what are the options are there to achieve this instead of setting the same in design time.
Any help would be appreciated.
~AbhijitAT SELECTION-SCREEN OUTPUT.
PERFORM radio_hide_options.
FORM radio_hide_options .
IF rad = ' '.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'RT1'.
screen-input = '0'.
MODIFY SCREEN.
WHEN 'RT2'.
screen-input = '0'.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.
ELSEIF rad = 'X'.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'RT1'.
screen-input = '1'.
MODIFY SCREEN.
WHEN 'RT2'.
screen-input = '1'.
MODIFY SCREEN.
ENDCASE.
ENDLOOP.
ENDIF.
endform. -
Guidelines for setting Application Module Pool Size Parameters?
Are there guidelines for setting the application module pool size parameters, such as initial pool size, maximum pool size, etc., based on the expected number of users or other factors? I've read the developer guide sections (ch 28-29), but still don't have a good feel for how to correctly set the optimal values for the pool configuration parameters? Even more importanty, how do I monitor the pool's efficiency during runtime to determine if the pooling parameters are configured correctly?
This will be critical to performance and scalability, so I'm looking for a way to get some visibility into how the pooling is working during production operation to assess whether there are bottlenecks/constraints/ineffeciencies?
Note I am using Tomcat as the java runtime container; ADF BC / JSF jdev 10.1.3.1
Thanks in advance and Merry Christmas!KUBA - were you able to resolve these issues and if so are there any lessons learned you can share?
I'm hoping someone from the ADF team can answer our original question including guidelines for setting pool parameters and how to monitor the pool's performance while running in production.
thanks -
Multiple JDBC connection pools
Hi
I have WLI application ( 7.0 ) and another J2EE appliction configured on WLS (
7.0 ). If I have multiple jdbc connection pools configured to access different
( or even the same ) databases, I am unable to get the connection to execute a
sql query in the J2EE app. The connection pool gets initialized properly during
the server startup and I can see them in the console but when I try to acquire
a connection from the pool for execution of a jdbc stmt, I am unable to obtain
a connection. Did any one succeed in configuring mulitple jdbc connection pools
and WLI and another J2EE app to run together on WLS 7.0? Any suggestions are welcome.
Thanks
SreeramWell ... It boiled down to ACLs.
"Sreeram" <[email protected]> wrote:
>
Hi
I have WLI application ( 7.0 ) and another J2EE appliction configured
on WLS (
7.0 ). If I have multiple jdbc connection pools configured to access
different
( or even the same ) databases, I am unable to get the connection to
execute a
sql query in the J2EE app. The connection pool gets initialized properly
during
the server startup and I can see them in the console but when I try to
acquire
a connection from the pool for execution of a jdbc stmt, I am unable
to obtain
a connection. Did any one succeed in configuring mulitple jdbc connection
pools
and WLI and another J2EE app to run together on WLS 7.0? Any suggestions
are welcome.
Thanks
Sreeram -
Multiple DataSource using single Connection Pool
Previously using Weblogic 6.1 we had a configuration where multiple Datasources used a single connection pool. Now that we are in the process of upgrading to Weblogic 9.1, we are attempting to recreate the same configuration.
The Weblogic 9.1 upgrade wizard appears to have created the relevent datasource & connection pool configuration files but when attempting to use these I am receiving the following errors:
####<30-Jan-2007 11:18:21 o'clock GMT> <Info> <JDBC> <tu0991ws9004> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1170155901758> <BEA-001508> <Destroying Connection Pool TestDSLegacyPool.>
####<30-Jan-2007 11:18:21 o'clock GMT> <Info> <JDBC> <tu0991ws9004> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1170155901758> <BEA-001155> <The following exception has occurred:
weblogic.common.ResourceException: Unknown Data Source TestDSLegacyPool
at weblogic.jdbc.common.internal.ConnectionPoolManager.shutdownAndDestroyPool(ConnectionPoolManager.java:419)
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:251)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:620)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:231)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:65)
at weblogic.management.deploy.internal.DeploymentAdapter$1.prepare(DeploymentAdapter.java:37)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:232)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:164)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:121)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
>
####<30-Jan-2007 11:18:21 o'clock GMT> <Error> <Deployer> <tu0991ws9004> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1170155901773> <BEA-149205> <Failed to initialize the application 'TestDSLegacyPool' due to error weblogic.application.ModuleException: .
weblogic.application.ModuleException:
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:257)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:620)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:231)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:65)
at weblogic.management.deploy.internal.DeploymentAdapter$1.prepare(DeploymentAdapter.java:37)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:232)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:164)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:121)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
weblogic.common.ResourceException: weblogic.common.ResourceException: DataSource(TestDSLegacyPool) can't be created with non-existent Pool (connection or multi) (Beach Brochure Browse Pool)
at weblogic.jdbc.common.internal.DataSourceManager.checkDataSource(DataSourceManager.java:239)
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:247)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:620)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:231)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:65)
at weblogic.management.deploy.internal.DeploymentAdapter$1.prepare(DeploymentAdapter.java:37)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:232)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:164)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:121)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
weblogic.common.ResourceException: DataSource(TestDSLegacyPool) can't be created with non-existent Pool (connection or multi) (Beach Brochure Browse Pool)
at weblogic.jdbc.common.internal.DataSourceManager.verifyPoolDeployment(DataSourceManager.java:607)
at weblogic.jdbc.common.internal.DataSourceManager.checkDSConfig(DataSourceManager.java:594)
at weblogic.jdbc.common.internal.DataSourceManager.checkDataSource(DataSourceManager.java:236)
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:247)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:620)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:231)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:65)
at weblogic.management.deploy.internal.DeploymentAdapter$1.prepare(DeploymentAdapter.java:37)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:232)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:164)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:121)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
++++++++++++++++++++++++++++++++++++++++++++++++++
The configuration files content is :
TestDSLegacyPool-9290-jdbc.xml
<?xml version='1.0' encoding='UTF-8'?>
<jdbc-data-source xmlns="http://www.bea.com/ns/weblogic/90" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xsi:schemaLocation="http://www.bea.com/ns/weblogic/910/domain.xsd">
<name>TestDSLegacyPool</name>
<internal-properties>
<property>
<name>LegacyType</name>
<value>3</value>
</property>
<property>
<name>LegacyPoolName</name>
<value>Beach Brochure Browse Pool</value>
</property>
</internal-properties>
<jdbc-data-source-params>
<jndi-name>beachBrochureBrowseDS</jndi-name>
<global-transactions-protocol>None</global-transactions-protocol>
</jdbc-data-source-params>
</jdbc-data-source>
CP-Beach_Brochure_Browse_Pool-1043-jdbc.xml
<?xml version='1.0' encoding='UTF-8'?>
<jdbc-data-source xmlns="http://www.bea.com/ns/weblogic/90" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xsi:schemaLocation="http://www.bea.com/ns/weblogic/910/domain.xsd">
<name>Beach Brochure Browse Pool</name>
<internal-properties>
<property>
<name>LegacyType</name>
<value>1</value>
</property>
</internal-properties>
<jdbc-driver-params>
<url>jdbc:oracle:thin:@aserver:1522:adb</url>
<driver-name>oracle.jdbc.driver.OracleDriver</driver-name>
<properties>
<property>
<name>user</name>
<value>gf_user</value>
</property>
<property>
<name>dll</name>
<value>ocijdbc9</value>
</property>
<property>
<name>protocol</name>
<value>thin</value>
</property>
</properties>
<password-encrypted>{3DES}4UT5899x/Z4=</password-encrypted>
</jdbc-driver-params>
<jdbc-connection-pool-params>
<initial-capacity>1</initial-capacity>
<max-capacity>3</max-capacity>
</jdbc-connection-pool-params>
</jdbc-data-source>
Would anyone be able to point me in the right direction with this? Configuring the Datasources through the Admin Console creates a single Datasource configuration file that contains its relevent connection pool configuration, but the Weblogic Upgrade wizard creates a Datasource config file and a separate connection pool config file. What would I need to do to use the config files generated by the Weblogic Upgrade wizard?
Any help appreciated
Thanks
AndrewAndrew Harrison wrote:
Previously using Weblogic 6.1 we had a configuration where multiple Datasources used a single
connection pool. Now that we are in the process of upgrading to Weblogic 9.1, we are attempting
to recreate the same configuration.Hi, sorry to say, that is no longer possible:
http://e-docs.bea.com/wls/docs90/jdbc_admin/jdbc_intro.html#1044158
Simplified JDBC Resource Configuration
In WebLogic Server 9.0, the number of JDBC resource types was reduced to simplify JDBC configuration and to reduce the likelihood
of configuration errors. Instead of configuring a JDBC connection pool and then configuring a data source or tx data source to
point to the connection pool and bind to the JNDI tree, you configure a data source that encompasses a connection pool.
Note: Because of the new configuration design, you can no longer have multiple data sources that point to a single connection
pool. Instead, you can create additional data sources, each with its own pool of connections, or you can bind a single data source
to the JNDI tree with multiple names. See Binding a Data Source to the JNDI Tree with Multiple Names for more information.
Joe
>
The Weblogic 9.1 upgrade wizard appears to have created the relevent datasource & connection pool
configuration files but when attempting to use these I am receiving the following errors:
####<30-Jan-2007 11:18:21 o'clock GMT> <Info> <JDBC> <tu0991ws9004> <AdminServer> <[ACTIVE]
ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <>
<1170155901758> <BEA-001508> <Destroying Connection Pool TestDSLegacyPool.>
####<30-Jan-2007 11:18:21 o'clock GMT> <Info> <JDBC> <tu0991ws9004> <AdminServer> <[ACTIVE]
ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <>
<1170155901758> <BEA-001155> <The following exception has occurred:
weblogic.common.ResourceException: Unknown Data Source TestDSLegacyPool
at weblogic.jdbc.common.internal.ConnectionPoolManager.shutdownAndDestroyPool(ConnectionPoolManager.java:419)
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:251)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:620)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:231)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:65)
at weblogic.management.deploy.internal.DeploymentAdapter$1.prepare(DeploymentAdapter.java:37)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:232)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:164)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:121)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
####<30-Jan-2007 11:18:21 o'clock GMT> <Error> <Deployer> <tu0991ws9004> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1170155901773> <BEA-149205> <Failed to initialize the application 'TestDSLegacyPool' due to error weblogic.application.ModuleException: .
weblogic.application.ModuleException:
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:257)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:620)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:231)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:65)
at weblogic.management.deploy.internal.DeploymentAdapter$1.prepare(DeploymentAdapter.java:37)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:232)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:164)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:121)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
weblogic.common.ResourceException: weblogic.common.ResourceException: DataSource(TestDSLegacyPool) can't be created with non-existent Pool (connection or multi) (Beach Brochure Browse Pool)
at weblogic.jdbc.common.internal.DataSourceManager.checkDataSource(DataSourceManager.java:239)
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:247)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:620)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:231)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:65)
at weblogic.management.deploy.internal.DeploymentAdapter$1.prepare(DeploymentAdapter.java:37)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:232)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:164)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:121)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
weblogic.common.ResourceException: DataSource(TestDSLegacyPool) can't be created with non-existent Pool (connection or multi) (Beach Brochure Browse Pool)
at weblogic.jdbc.common.internal.DataSourceManager.verifyPoolDeployment(DataSourceManager.java:607)
at weblogic.jdbc.common.internal.DataSourceManager.checkDSConfig(DataSourceManager.java:594)
at weblogic.jdbc.common.internal.DataSourceManager.checkDataSource(DataSourceManager.java:236)
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:247)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:620)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:231)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
at weblogic.deploy.internal.targetserver.SystemResourceDeployment.prepare(SystemResourceDeployment.java:65)
at weblogic.management.deploy.internal.DeploymentAdapter$1.prepare(DeploymentAdapter.java:37)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:232)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:164)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:121)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
++++++++++++++++++++++++++++++++++++++++++++++++++
The configuration files content is :
TestDSLegacyPool-9290-jdbc.xml
<?xml version='1.0' encoding='UTF-8'?>
<jdbc-data-source xmlns="http://www.bea.com/ns/weblogic/90" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xsi:schemaLocation="http://www.bea.com/ns/weblogic/910/domain.xsd">
<name>TestDSLegacyPool</name>
<internal-properties>
<property>
<name>LegacyType</name>
<value>3</value>
</property>
<property>
<name>LegacyPoolName</name>
<value>Beach Brochure Browse Pool</value>
</property>
</internal-properties>
<jdbc-data-source-params>
<jndi-name>beachBrochureBrowseDS</jndi-name>
<global-transactions-protocol>None</global-transactions-protocol>
</jdbc-data-source-params>
</jdbc-data-source>
CP-Beach_Brochure_Browse_Pool-1043-jdbc.xml
<?xml version='1.0' encoding='UTF-8'?>
<jdbc-data-source xmlns="http://www.bea.com/ns/weblogic/90" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xsi:schemaLocation="http://www.bea.com/ns/weblogic/910/domain.xsd">
<name>Beach Brochure Browse Pool</name>
<internal-properties>
<property>
<name>LegacyType</name>
<value>1</value>
</property>
</internal-properties>
<jdbc-driver-params>
<url>jdbc:oracle:thin:@aserver:1522:adb</url>
<driver-name>oracle.jdbc.driver.OracleDriver</driver-name>
<properties>
<property>
<name>user</name>
<value>gf_user</value>
</property>
<property>
<name>dll</name>
<value>ocijdbc9</value>
</property>
<property>
<name>protocol</name>
<value>thin</value>
</property>
</properties>
<password-encrypted>{3DES}4UT5899x/Z4=</password-encrypted>
</jdbc-driver-params>
<jdbc-connection-pool-params>
<initial-capacity>1</initial-capacity>
<max-capacity>3</max-capacity>
</jdbc-connection-pool-params>
</jdbc-data-source>
Would anyone be able to point me in the right direction with this? Configuring the Datasources
through the Admin Console creates a single Datasource configuration file that contains its relevent
connection pool configuration, but the Weblogic Upgrade wizard creates a Datasource config file and
a separate connection pool config file. What would I need to do to use the config files generated
by the Weblogic Upgrade wizard?
Any help appreciated
Thanks
Andrew -
Questions about example "Dynamic JDBC Credentials for Model 1 and Model 2"
Hello,
i am trying to set up dynamic JDBC authentication in my ADF BC application - i want that it'll work like in Forms - a dababase user with the proper priveleges can log into my ADF BC application using his database login and password, and work with application.
I've read the paper "How To Support Dynamic JDBC Credentials" at
http://www.oracle.com/technology/products/jdev/howtos/10g/dynamicjdbchowto.html
and test the very useful example, created by Steve Muench, which i've got from
http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html#14
The example works, but when i'm transfer its realisation in my application - it doesnt work the right way. The problems is the following:
1. I can connect and work successfully only under the owner of the schema - the username and password of which i've wrote in the "jbo.server.internal_connection" string of the AM configuration.
2. When i'm connecting under other users, which have all the rights to work with the db objects, used by application, i got the main page with the "Access Denied" message - as i have no priveleges to the tables.
3. The big surprise is that if i am entering the fake username and password - the random letter combination - then i am getting the same behavior as in p.2 - the main page with the "Access Denied" message!
And the last question is:
4. Is it possible to set up the dynamic jdbc authentication using the build-in JDeveloper functions - i mean not to use that additional code, not override the ADF Binding Filter, and so on, but set up the similar behaviour (users log in using their db names and passwords) in several minutes following the standart documentation?
Thanks in advance!One more question:
I have 2 independent Application Modules in my application - to make the 2 transactions independent one form another, when working with different parts of project - and while using dinamic JDBC authentification, the user connects only in the first AM under the username he's entered, but the 2nd AM works under the predefined earlier (during development) connection for that AM.
How can i make the 2nd AM to be connected under the logging in user (same as the 1rst AM)? -
How do I use a JDBC Resource set-up in Sun Java System Appliation Server?
How do I use a JDBC Resource set-up in Sun Java System Appliation Server 8.2?
I created a JDBC Resource labeled "jdbc/__PetroPool" that is backed by a Connection Pool labeled "PetroPool".
Since this is set-up in Sun Java System Appliation Server 8.2, I am looking for suggestions, examples or guides on how I can use this connection.
I've been browsing the developer's guide for Sun Java System Appliation Server 8.2 without much luck.
Googling really doesn't provide a lot of useful information either...
Any suggestions, examples or guides on how I can use this connection is greatly appreciated.
Thanks,
--ToddHow do I use a JDBC Resource set-up in Sun Java System Appliation Server 8.2?
I created a JDBC Resource labeled "jdbc/__PetroPool" that is backed by a Connection Pool labeled "PetroPool".
Since this is set-up in Sun Java System Appliation Server 8.2, I am looking for suggestions, examples or guides on how I can use this connection.
I've been browsing the developer's guide for Sun Java System Appliation Server 8.2 without much luck.
Googling really doesn't provide a lot of useful information either...
Any suggestions, examples or guides on how I can use this connection is greatly appreciated.
Thanks,
--Todd -
REDIRECT JDBC URL WHEN USING DYNAMIC JDBC CREDENTIALS SO NOT HARDCODED
I have taken over an application that uses row-level security and ADF (using
dynamic JDBC Credentials). I have been able to set the internal_connection to
a JDBCDatasource, but cannot set the Connection Type in the Oracle Business
Component Configuration to a JDBCDatasource. When I do, I receive errors that
tables are not found. When I set the value back to a JDBC URL, everything
works fine again.
I am looking for a solution where the userid and password are not hardcoded in
the BC4J.xcfg or a way to redirect this information, as we change our system
passwords every nighty days. Otherwise, I will have to redeploy the
application every nighty days.
I did not create this application, but I am sure that you could simply follow
the "How to Support Dynamic JDBC Credentials" article. From that point, you
will probably be where I am, where I have the internal_connection set to a
JDBCDataSource and working properly, but cannot set the Connection Type to
anything where the userid and password will not be hardcoded or cause failure.
I wanted to let you know that I have
found the updated How to Support Dynamic JDBC Credentials
(http://www.oracle.com/technology/products/jdev/howtos/bc4j/howto_dynamic_jdbc.h
tml) and was going to run through the "Advanced: Supporting Dynamic JDBC URLs",
but once I was done keying in
env.remove(ConnectionStrategy.DB_CONNECT_STRING_PROPERTY); I received a
depreciation message on the DB_CONNECT_STRING_PROPERTY. (Note: I am coding in
JDeveloper 10.1.3, so this may be depreciated as of then, but the ADF Libraries
for JDeveloper 10.1.3 are on our Oracle 10gAS 10.1.2 server.)
I thought maybe this would resolve my issue, but I can't be sure as the
deprecation message leads me to believe that this solution may not be viable in
the future.
UPDATE
=======
The article you are referencing is definitely an older version.
There is a newer article for 10g at:
http://www.oracle.com/technology/products/jdev/howtos/10g/dynamicjdbchowto.html
Please see if that helps.
I have already reviewed this article.
In fact, I have reviewed many versions of this document. I have not seen one
created yet for 10.1.3 though (especially without JSF as our 10.1.2 AS server
will not support it). I need to find an example or documentation that shows
how we can keep from having the JDBC URL stored in the BC4J.xcfg or a way to
use dynamic JDBC credentials with a JDBCDataSource. We do not want to store
the userid and password in the application, rather, we would like to setup
something that can be configurable from the application server.
I think we need to use the dynamic JDBC credentials because we are using the
row-level security, where we setup a database context for the user and only
allow certain records of a database table to be returned to the browser based
on that context.
Might there be a way to still use the JDBCDataSource?I understand that the user provides the userid and password and that these values are setup using the Configuration class.
However, when I am to deploy the ADF Business Module with my application, I have to specify either a JDBC URL or a JDBC DataSource in the Oracle Business Component Configuration.
When I use JDBC DataSource, the code does not work properly, almost like the user's credentials are not used for the connection (I get errors like table or view does not exist).
When I use the JDBC URL, the bc4j.xcfg stores a reference in the JDBCName attribute to a ConnectionDefinition in the same file. It is in this tag of the bc4j.xcfg where the userid, sid, and password (encrypted) is stored and used when retrieving the initial context of the ADF business components.
It is these values that I want to have stored else where so that the application does not have to be redeployed in order for the password (or sid, or other connection information) to be change. -
Dynamic JDBC credentials example application from Steve Muench
Apologies for this newbie question...but I'm trying to understand the Dynamic JDBC credentials example application from Steve Muench:
http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html#14
I think I understand most of it but the one bit I dont understand is why it customizes the ADF Page Lifecycle (DynamicJDBCADFPhaseListener, DynamicJDBCPageLifecycle, DynamicJDBCPageLifecycleContext).
Can anyone explain to an ex-forms developer why this code is there?
I'm also trying to work out a way for the session to be invalidated when the user logins again
e.g. a user logins, he doesnt use the logout function but uses the back button to go back to the login page. when he logs in with another set of credentials, would a new session start or as i supsect, it would use the original login credentials?
ThanksYou can ignore those three classes in the example. They are not related to the dynamic credential solution, and must have been left over from some other example I evolved into what you see. Sorry to have cluttered up the implementation with stuff that isn't really contributing to the actual solution. DOH!
-
Workaround for using Oracle JDBC extension with WLS pooling
Reading the newsgroup I saw that many of us encountered the problems
with ClassCastException when tried to use Oracle JDBC extension
with WLS pooling. I also had.
In this case BEA recommends to use dangerous
method getVendorConnection() which exposes
the physical connection object to your code.
Yes it's really dangerous because of unsafe usage may breaks
WLS pooled connection(s).
Moreover, this practice will make your JDBC code
unportable (your JDBC code in addition to Oracle dependence
became Weblogic dependent):
void doSmth() {
Connection con = ...;
Connection vCon = ((WLConnection)con).getVendorConnection();
// + mess of usage con in one places and vCon in others
// (where Oracle extensions are needed)
// !Don't forget to don't close vCon!
Sux.
I found the workaround.
Introduction
============
Yes the real cause of ClassCastException is that
in depth of Oracle driver the casting
to class oracle.jdbc.driver.OracleConnection
(not to interface oracle.jdbc.OracleConnection)
is performed.
Someone can say that this is bug or pure desing.
Weblogic pooled connection provide dynamic
implementation for all public interfaces
which real physical (wrapped) connection object implements.
Great feature!
But I guess that all interface methods implemented
by simple call-delegation to physical (wrapped) connection object.
In case of oracle.jdbc.OracleConnection interface
this approach doesn't work for at least one its method:
public OracleConnection unwrap()
WLS pooled connection shoudn't implement this method by
delegation to physical connection object BUT should
return physical connection object itself!
// Wrong implementation of unwrap()
// delegation is used
public OracleConnection unwrap() {
return physicalConnection.unwrap();
// Right implementation of unwrap()
// physical connection returned
public OracleConnection unwrap() {
return physicalConnection;
Workaround
==========
1. Develop your own OracleConnection wrapper class:
import oracle.jdbc.OracleConnection;
import weblogic.jdbc.extensions.WLConnection;
public class MyOracleConnectionImpl implements OracleConnection {
private OracleConnection con;
public MyOracleConnectionImpl(OracleConnection connection)
throws SQLException
this.con = connection;
public OracleConnection unwrap() {
return (OracleConnection)
((WLConnection)con).getVendorConnection();
/* Implement all other methods by delegation to con object */
2. Don't get Connections directly from DataSource --
develop your own simple (may be static) utility
class which retrives Connections from dataSource
and returns them wrapped into your MyOracleConnectionImpl
to your code from some method:
puclic abstract class MyConnectionSource {
public static Connection getConnection() {
Connection con = // get it from DataSource
return new MyOracleConnectionImpl((OracleConnection)con);
3. Add attribute RemoveInfectedConnectionsEnabled="false"
to definition of your JDBCConnectionPool within config.xml
You may do it because of you `safely` use vendorConnection --
you don't expose it to application code.
4. Enjoy the Oracle JDBC extensions in your code!
Example:
Connection con = MyConnectionSource.getConnection;
ArrayDescriptor add =
ArrayDescriptor.createDescriptor("your_type", con);
Hope it helps to someone.
Best regards,
Eugene VoytitskyHello Eugene Voytitsky,
Thanks Eugene Voytitsky for your idea
I have tried the solution suggested by You, but it did not work.
It still throws ClassCastException.
I am sorry for posting the whole code of two classes below.
I did this to give you more clarity.
I am also indicating the place where the exception was thrown..
Please let me know if I am doing something wrong.
OracleConnection Wrapper class
package ejbTesting;
// sql imports
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;
// util imports
import java.util.Map;
import java.util.Properties;
// imports from Oracle Driver Classes
import oracle.jdbc.OracleConnection;
import oracle.jdbc.OracleOCIFailover;
import oracle.jdbc.OracleSavepoint;
// import from Weblogic extensions
import weblogic.jdbc.extensions.WLConnection;
public class WeblogicConnectionWrapper implements OracleConnection
// oracle connection object
private OracleConnection connection;
public WeblogicConnectionWrapper (OracleConnection orclConnection)
try
this.connection = orclConnection;
catch(Exception unexpected )
unexpected.printStackTrace();
public OracleConnection unwrap()
try
// The datasource returns a weblogic.jdbc.pool.Connection
// This needs to be type casted to weblogic.jdbc.extensions.WLConnection
// Only this weblogic.jdbc.extensions.WLConnection CAN BE type casted
// to OracleConnection
return (OracleConnection) ((WLConnection) connection).getVendorConnection();
catch(Exception sqlException )
sqlException.printStackTrace ();
return null;
/* Implement all other methods by delegation to connection object */
public Connection _getPC()
return connection._getPC();
public void archive(int i, int j, String s)
throws SQLException
connection.archive(i, j, s);
public void assertComplete()
throws SQLException
connection.assertComplete();
public void clearWarnings()
throws SQLException
connection.clearWarnings();
public void close()
throws SQLException
connection.close();
public void commit()
throws SQLException
connection.commit();
public Statement createStatement()
throws SQLException
return connection.createStatement();
public Statement createStatement(int i, int j)
throws SQLException
return connection.createStatement(i, j);
public boolean getAutoClose()
throws SQLException
return connection.getAutoClose();
public boolean getAutoCommit()
throws SQLException
return connection.getAutoCommit();
public CallableStatement getCallWithKey(String s)
throws SQLException
return connection.getCallWithKey(s);
public String getCatalog()
throws SQLException
return connection.getCatalog();
public boolean getCreateStatementAsRefCursor()
return connection.getCreateStatementAsRefCursor();
public int getDefaultExecuteBatch()
return connection.getDefaultExecuteBatch();
public int getDefaultRowPrefetch()
return connection.getDefaultRowPrefetch();
public Object getDescriptor(String s)
return connection.getDescriptor(s);
public boolean getExplicitCachingEnabled()
throws SQLException
return connection.getExplicitCachingEnabled();
public boolean getImplicitCachingEnabled()
throws SQLException
return connection.getImplicitCachingEnabled();
public boolean getIncludeSynonyms()
return connection.getIncludeSynonyms();
public Object getJavaObject(String s)
throws SQLException
return connection.getJavaObject(s);
public DatabaseMetaData getMetaData()
throws SQLException
return connection.getMetaData();
public Properties getProperties()
return connection.getProperties();
public boolean getRemarksReporting()
return connection.getRemarksReporting();
public boolean getRestrictGetTables()
return connection.getRestrictGetTables();
public String getSQLType(Object obj)
throws SQLException
return connection.getSQLType(obj);
public String getSessionTimeZone()
return connection.getSessionTimeZone();
public int getStatementCacheSize()
throws SQLException
return connection.getStatementCacheSize();
public PreparedStatement getStatementWithKey(String s)
throws SQLException
return connection.getStatementWithKey(s);
public int getStmtCacheSize()
return connection.getStmtCacheSize();
public short getStructAttrCsId()
throws SQLException
return connection.getStructAttrCsId();
public boolean getSynchronousMode()
return connection.getSynchronousMode();
public int getTransactionIsolation()
throws SQLException
return connection.getTransactionIsolation();
public Map getTypeMap()
throws SQLException
return connection.getTypeMap();
public String getUserName()
throws SQLException
return connection.getUserName();
public boolean getUsingXAFlag()
return connection.getUsingXAFlag();
public SQLWarning getWarnings()
throws SQLException
return connection.getWarnings();
public boolean getXAErrorFlag()
return connection.getXAErrorFlag();
public boolean isClosed()
throws SQLException
return connection.isClosed();
public boolean isLogicalConnection()
return connection.isLogicalConnection();
public boolean isReadOnly()
throws SQLException
return connection.isReadOnly();
public String nativeSQL(String s)
throws SQLException
return connection.nativeSQL(s);
public Object openJoltConnection(String s, short word0, short word1)
return connection.openJoltConnection(s, word0, word1);
public void oracleReleaseSavepoint(OracleSavepoint oraclesavepoint)
throws SQLException
connection.oracleReleaseSavepoint(oraclesavepoint);
public void oracleRollback(OracleSavepoint oraclesavepoint)
throws SQLException
connection.oracleRollback(oraclesavepoint);
public OracleSavepoint oracleSetSavepoint()
throws SQLException
return connection.oracleSetSavepoint();
public OracleSavepoint oracleSetSavepoint(String s)
throws SQLException
return connection.oracleSetSavepoint(s);
public int pingDatabase(int i)
throws SQLException
return connection.pingDatabase(i);
public CallableStatement prepareCall(String s)
throws SQLException
return connection.prepareCall(s);
public CallableStatement prepareCall(String s, int i, int j)
throws SQLException
return connection.prepareCall(s, i, j);
public CallableStatement prepareCallWithKey(String s)
throws SQLException
return connection.prepareCallWithKey(s);
public PreparedStatement prepareStatement(String s)
throws SQLException
return connection.prepareStatement(s);
public PreparedStatement prepareStatement(String s, int i, int j)
throws SQLException
return connection.prepareStatement(s, i, j);
public PreparedStatement prepareStatementWithKey(String s)
throws SQLException
return connection.prepareStatementWithKey(s);
public void purgeExplicitCache()
throws SQLException
connection.purgeExplicitCache();
public void purgeImplicitCache()
throws SQLException
connection.purgeImplicitCache();
public void putDescriptor(String s, Object obj)
throws SQLException
connection.putDescriptor(s, obj);
public void registerApiDescription(String s, short word0, short word1, String
s1)
connection.registerApiDescription(s, word0, word1, s1);
public void registerSQLType(String s, Class class1)
throws SQLException
connection.registerSQLType(s, class1);
public void registerSQLType(String s, String s1)
throws SQLException
connection.registerSQLType(s, s1);
public void registerTAFCallback(OracleOCIFailover oracleocifailover, Object
obj)
throws SQLException
connection.registerTAFCallback(oracleocifailover, obj);
public void rollback()
throws SQLException
connection.rollback();
public void setAutoClose(boolean flag)
throws SQLException
connection.setAutoClose(flag);
public void setAutoCommit(boolean flag)
throws SQLException
connection.setAutoCommit(flag);
public void setCatalog(String s)
throws SQLException
connection.setCatalog(s);
public void setCreateStatementAsRefCursor(boolean flag)
connection.setCreateStatementAsRefCursor(flag);
public void setDefaultExecuteBatch(int i)
throws SQLException
connection.setDefaultExecuteBatch(i);
public void setDefaultRowPrefetch(int i)
throws SQLException
connection.setDefaultRowPrefetch(i);
public void setExplicitCachingEnabled(boolean flag)
throws SQLException
connection.setExplicitCachingEnabled(flag);
public void setImplicitCachingEnabled(boolean flag)
throws SQLException
connection.setImplicitCachingEnabled(flag);
public void setIncludeSynonyms(boolean flag)
connection.setIncludeSynonyms(flag);
public void setReadOnly(boolean flag)
throws SQLException
connection.setReadOnly(flag);
public void setRemarksReporting(boolean flag)
connection.setRemarksReporting(flag);
public void setRestrictGetTables(boolean flag)
connection.setRestrictGetTables(flag);
public void setSessionTimeZone(String s)
throws SQLException
connection.setSessionTimeZone(s);
public void setStatementCacheSize(int i)
throws SQLException
connection.setStatementCacheSize(i);
public void setStmtCacheSize(int i)
throws SQLException
connection.setStmtCacheSize(i);
public void setStmtCacheSize(int i, boolean flag)
throws SQLException
connection.setStmtCacheSize(i, flag);
public void setSynchronousMode(boolean flag)
connection.setSynchronousMode(flag);
public void setTransactionIsolation(int i)
throws SQLException
connection.setTransactionIsolation(i);
public void setTypeMap(Map map)
throws SQLException
connection.setTypeMap(map);
public void setUsingXAFlag(boolean flag)
connection.setUsingXAFlag(flag);
public void setWrapper(OracleConnection oracleconnection)
connection.setWrapper(oracleconnection);
public void setXAErrorFlag(boolean flag)
connection.setXAErrorFlag(flag);
public void shutdown(int i)
throws SQLException
connection.shutdown(i);
public void startup(String s, int i)
throws SQLException
connection.startup(s, i);
Util class to get Wrapped Connections from
datasource
package ejbTesting;
// j2ee imports
import javax.naming.InitialContext;
import javax.sql.DataSource;
// sql imports
import java.sql.Connection;
// imports from Oracle Driver Classes
import oracle.jdbc.OracleConnection;
* Wrapper class for the DataSource Connection from Weblogic pool
public class DataSourceConnectionWrapper
// datasource variable
private static transient DataSource datasource = null;
private static String dbName = "jdbc/workbench";
* Method that returns the database connection
public static Connection getConnection()
try
// initialsing the datasource object
initialiseDataSource ();
// Getting a connection from the datasource
Connection con = datasource.getConnection( );
// wrapping it custom wrapper class and
// returning the connection object
return new WeblogicConnectionWrapper((OracleConnection)con);
catch(Exception exception )
exception.printStackTrace();
return null;
private static void initialiseDataSource( ) throws Exception
if ( datasource == null )
try
InitialContext ic = new InitialContext( );
datasource = (DataSource) ic.lookup( dbName );
catch (Exception ne )
throw new Exception( "NamingException while looking up DataSource with
JNDI name" +
dbName + ": \n" + ne.getMessage( ) );
Exception Stack Trace
The line 46 in DataSourceConnectionWrapper
corresponds to
return new WeblogicConnectionWrapper((OracleConnection)con);
Which I feel is logical as the connection which we get from Weblogic
datasource cannot be type casted to OracleConnection
java.lang.ClassCastException: weblogic.jdbc.pool.Connection
at ejbTesting.DataSourceConnectionWrapper.getConnection(DataSourceConnectionWrapper.java:46) -
Jdbc-odbc-bridge connection pool
I got a problem with odbc connection pool in my Sun App Server 7.
When i try to connect to the odbc database (msaccess or conzept16), i got a SQLException : com.sun.enterprise.repository.J2EEResourceException
java.lang.NoSuchMethodException: setdatabaseName .....
It seems that i cant set any propertys like url, user or password. The exception throws every time NoSuchMethodException: setURL or ... NoSuchMethodException: setUser
I tried this with pointbase database and pointbase drivers and there was no problem. Also when i connect direct from jsp page to the odbc database without connection pool it works.
How can i set a propper connection pool with the jdbc-odbc-bridge? Please Help. There is no jdbc driver for that database available.
Is that right using sun.jdbc.odbc.JdbcOdbcDriver for that?
here my server.xml
<resources>
<jdbc-resource enabled="true" pool-name="access-pool" jndi-name="jdbc/AccessDB"/>
<jdbc-connection-pool steady-pool-size="2" max-pool-size="6" max-wait-time-in-millis="60000" pool-resize-quantity="2" idle-timeout-in-seconds="300" is-isolation-level-guaranteed="false" is-connection-validation-required="false" connection-validation-method="auto-commit" fail-all-connections="false" datasource-classname="sun.jdbc.odbc.JdbcOdbcDriver" name="access-pool" validation-table-name="TAB_NAME">
<property value="jdbc:odbc:testdb" name="databaseName"/>
</jdbc-connection-pool>
</resources>AFAIK the bridge driver does not support multipleopen
connections (which is what connection pooling
requires).Wrong.
It might be the case that the bridge AND ms access
does not support that but I seriously doubt that as
well.
Yesterday I didn't want to test this. Today I did.
So I can state that it is completely wrong.
There might be some other reason preventing the usage in a pool, but it isn't the number of open connections. -
Servlets and multiple JDBC connections...
Hi Guru's
I want to perform multiple JDBC queries simultaneously from my servlet. Let's say I have a connection pool containing JDBC connections. Now what I want to do is to use each of this connections simultaneously to perform queries in parallel.
What is the best way to do this??? create multiple threads, one for each query, and then collate results when all threads are finished???
Has anyone does this before or know of any links or samples which I can look at??
your help much appreciated...
Many ThanksThanks but further questions....
But take care:
multithreading might only work parallel if there are
multiple processors - otherwise the thread fragments
will be processed one after the other until they are
finished.I agree. My server has multiple processors hence multi-threading.
Why do you need to perform the queries
simultaneously?
wouldn't it work too when you perform the queries one
after the other?To speed up performance. Sequential processing is too slow at the moment.
Hope you don't try doing so inside one single
database...yes inside a single databse.
Do you have any links to sample example etc..??? Importantly are you aware of any issues when one does this type of multi-threading from servlet. i.e does it clash with servlet's threading model etc...
I am aware of how servlets multithread requests and am quite familiar with them. Just wanted some examples on multithreading JDBC connections from servlets and how I can wait for all threads to finish before collecting results....also wanted to make sure that there are no other issues....
further help will be much appreciated..... -
Dynamic JDBC credentials don't work
Hello,
I'm using OC4J 9.0.3 (build 020927.1699) for deploying BC4J components as EJB session beans.
All my efforts to activate dynamic JDBC credentials are still without success.
Client (JDev9032) implements EnvInfoProvider and returns new properties as described in the JBO-javadoc. Tracing oc4j shows that required properties are passed from the client but ignored as unknown:
[332] (0) Copying unknown Client property (password='tiger') to session
[334] (0) Copying unknown Client property (user='scott') to session
- and connection is made on behalf of default user from data-source config.
Is it a bug or I misunderstood something ?
Thanks
ArkadyPlease discard.
The reason is in JDev9032, see BUG: JDBC dynamic credentials do not work -
Set WhereClause for Muliple Parameters
hi All,
i want to pass multiple parameters at runtime to the where clause for multiple updation.
so,how can i pass multiple parameters to the where clause.
anybody could you please help me on this issue.
i am using hashMap and i will be able to get the all the records what ever selected by the user for updation.
now i want to pass these mulitple parameters to another Query from the HashMap.
i am using below code,but it will not work properly.
the parameters which are available in the hashMap,not passed properly to the updation Page(to the updation Query)
hashParams.put("ItemNumber"+i,vitemNum);
hashParams.put("Count",Count);
multiIter.closeRowSetIterator();
pageContext.setForwardURL("OA.jsp?page=/xxfls/oracle/apps/po/packlist/webui/XxSuppalistcrealistPG",
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
hashParams,
false,//RetainAM
OAWebBeanConstants.ADD_BREAD_CRUMB_NO,
OAWebBeanConstants.IGNORE_MESSAGES);
could you please help me on this issue.
Regards,hi Anil
i have a serch page with one Update button for total page.
user selects the moe than one record for updation and click on the update button in searching page,after clicking on update button.i will show the updation records(user selected records) in another page(second page).
Now i got the records in the server side what ever the user selected but i need to pass these values to another page(i.e another query).
Here the code will fail to pass user selected values(Back end i got these values) to another page(Query).
Could you pleae check my code once.
if(pageContext.getParameter("UpdateOnSeaBtn")!=null)
OAAdvancedTableBean oaAdvTab=(OAAdvancedTableBean)webBean.findChildRecursive("PackinglistdetailsTabRN");
PackingListSeaVORowImpl row=null;
HashMap hashParams=new HashMap();
hashParams.put("Object","vitemNum");
OAViewObject upDtVO=(OAViewObject)am.findViewObject("PackingListSeaVO");
OAViewObject upsDtVO=(OAViewObject)am.findViewObject("ItemDetailsVO1");
int fetCount=upDtVO.getRowCount();
System.out.println("The fetched records in the vo:,"+fetCount);
Row[] rows=upDtVO.getFilteredRows("SingleSelection","Y");
RowSetIterator multiIter;
multiIter=upDtVO.createRowSetIterator("multiIter");
multiIter.setRangeStart(0);
multiIter.setRangeSize(fetCount);
int Count=0;
for(int i=0; i<fetCount;i++)
row=(PackingListSeaVORowImpl)multiIter.getRowAtRangeIndex(i);
if(row.getAttribute("SingleSelection")!=null)
if(row.getAttribute("ItemNumber")!=null)
Count++;
Object vitemNum=row.getAttribute("ItemNumber");
System.out.println("The Selected Item Num is:,"+vitemNum);
hashParams.put("ItemNumber"+i,vitemNum);
hashParams.put("Count",Count);
multiIter.closeRowSetIterator();
pageContext.setForwardURL("OA.jsp?page=/xxfls/oracle/apps/po/packlist/webui/XxSuppalistcrealistPG",
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
null,
false,//RetainAM
OAWebBeanConstants.ADD_BREAD_CRUMB_NO,
OAWebBeanConstants.IGNORE_MESSAGES);
Regards, -
My new computer is 64-bit running Windows 7 pro, SP1 and Microsoft Office 2010 Pro Plus 32-bit
My phone is a 4S runing iOS 6.1.3
Very frustrated now that I have recently installed itunes and outlook on this new computer. Everything worked perfectly ok on my laptop which was also 64-bit Windows 7 and running 32-bit Microsoft Office 2010 Pro. I have multiple email accounts set up in Outlook tho only use contacts and calendar in relation to one of these. Cannot sync itunes with the correct contacts and calendars, when I sync the calendar and contacts are empty. Not sure if there is any way to point itunes to particular address books and calendars.
I have installed and uninstalled itunes 3 times and thank goodness have a backup
Can anyone help please?
thanks in anticipationI had my home computer set up to sync to work's Exchange server. It worked well, but I didn't like seeing work email messages and other programs trying to sync with my default Outlook folder, which was then the Exchange (& work related) .ost file. I know there are various ways to manage those problems using filters, view, subfolders, etc., but it was a hassle for me. I think it could work well for many other folks.
For now, I have published my work calendar and subscribed to that calendar on my home computer. So I have view only access to my calendar on my home computer (and I can add/edit calendar items on my iPad (or Outlook Web Access) when away from work). This is not quite what I wanted, but it may work.
It almost makes me long for the days when I used my Windows Mobile Treo to sync back and forth between exchange at work and outlook at home (but had many sync conflicts as a result).
Maybe you are looking for
-
I have have the seriel #
-
IMAC Email - Moving to Next or Previous Message
I am a new iMAC and iPhone user, and am using Apple Mail on both devices. On my iPhone, after I view 1 particular message, I have the option to hit an "UP" or "DOWN" arrow, to move to the NEXT or PREVIOUS email message to view. However on the iMAC,
-
Connect IPhone 3GS with Laptop via bluetooth
Laptop HP Pavilion dv6 Win 7 Ultimate Iphone 3GS The computer and the Iphone don't see each other... What can I do?
-
Troubleshooting 6th gen ipod nano "unable to identify ipod"
Just this evening I plugged my ipod in to my laptop and I continually recieve the message that says something along the lines of "unable to identify ipod". I ran through the trouble shooting tips on the support website, including new usb port, restar
-
Hi Sap Experts, I need to configure ACH Payment method for vendors and after the automatic payment run the system need to send remittance advice through email to vendors. I would be very thankful if any one can help me in providing the details st