| Author | 
		  Message
		 | 
		
		  | muthu_tek | 
		  
		    
			  
				 Posted: Sat Apr 23, 2011 9:08 pm    Post subject: JDBC TYPE 4 Oracle Connection Problem in Message Broker | 
				     | 
			   
			 
		   | 
		
		
		   Apprentice
 
 Joined: 21 Jan 2010 Posts: 36 Location: Coimbatore,India 
  | 
		  
		    
			  
				Dear Once,
 
 
I try to access oracle database from java compute node in message broker 6.1.0.5. I configured configurable service for JDBC Type 4 connection But I couldnt access database.
 
 
 
JDBCProviders
 
  DEVSOA
 
  
   
	| Code: | 
   
  
	  connectionUrlFormat='jdbc:oracle:thin:muthu/tek123@10.56.11.123:
 
1521:DEVSOA'
 
    connectionUrlFormatAttr1='DEVSOA'
 
    connectionUrlFormatAttr2=''
 
    connectionUrlFormatAttr3=''
 
    connectionUrlFormatAttr4=''
 
    connectionUrlFormatAttr5=''
 
    databaseName='DB_SERVICES'
 
    databaseType='Oracle'
 
    databaseVersion='10.2.0'
 
    description='default_Description'
 
    environmentParms='default_none'
 
    jarsURL='D:\oracle\app\product\10.2.0\client_1\jdbc\lib'
 
    portNumber='1521'
 
    securityIdentity='default_User@default_Server'
 
    serverName='10.56.11.123'
 
    type4DatasourceClassName='oracle.jdbc.xa.client.OracleXADataSource'
 
    type4DriverClassName='oracle.jdbc.OracleDriver' | 
   
 
 
 
 
And My java compute code is 
 
 
   
	| Code: | 
   
  
	
 
try{
 
Connection conn = getJDBCType4Connection("DEVSOA", JDBC_TransactionType.MB_TRANSACTION_AUTO);
 
   Statement stmt = conn.createStatement(
 
          ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
 
            
 
         
 
         ResultSet result = stmt.executeQuery
 
                             ("SELECT NAME FROM EMPLOYEE");         
 
    
 
         System.out.println("Got results:");
 
         while(result.next()) { // process results one row at a time
 
           String val = result.getString(1);
 
    
 
           System.out.println("val = " + val);
 
         }
 
 
}catch(Exception  se){
 
      se.printStackTrace();
 
      System.out.println("Database Error -------------->>"+se.getMessage());
 
   }
 
 | 
   
 
 
 
 
I am getting exception like 
 
 
<com.ibm.broker.plugin.MbRecoverableException class:MbNode method:getJDBCType4Connection source:BIPv610 key:6233 >
 
	at com.ibm.broker.plugin.MbNode.getJDBCType4Connection(MbNode.java:1569)
 
	at DbServicesMsgFlow_JavaCompute.evaluate(DbServicesMsgFlow_JavaCompute.java:37)
 
	at com.ibm.broker.javacompute.MbRuntimeJavaComputeNode.evaluate(MbRuntimeJavaComputeNode.java:179)
 
	at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1476)
 
 
Database Error -------------->>
 
BIPv610:6233]BIP6233E: An error occurred in node: JavaCompute There was a problem establishing a connection to the given database URL: DEVSOA Exception details: java.lang.reflect.InvocationTargetException 
 
 
The node was unable to establish a connection to the given database URL. 
 
 
Contact your WebSphere Message Brokers administrator. : Failed to obtain JDBC Connection
 
 
 
What should be a problem ? and I tried  using securityIdentity ='mysec' on configurable service
 
 
mqsisetdbparms brokername -n jdbc:mysec -u muthu-p tek123.
 
 
But Its also not worked.
 
 
Is anyone tried this ?   | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | smdavies99 | 
		  
		    
			  
				 Posted: Sat Apr 23, 2011 9:28 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Council
 
 Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land. 
  | 
		  
		    
			  
				There was a similar problem posted here a week or so ago.
 
 
The advice given (by mqjeff I think) was DO NOT CHANGE THIS VALUE.
 
 
   
	| Quote: | 
   
  
	
 
connectionUrlFormat='jdbc:oracle:thin:muthu/tek123@10.56.11.123:
 
1521:DEVSOA' 
 
 | 
   
 
 
 
Put is back to its original value and try again. _________________ WMQ User since 1999
 
MQSI/WBI/WMB/'Thingy' User since 2002
 
Linux user since 1995
 
 
 
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | muthu_tek | 
		  
		    
			  
				 Posted: Sat Apr 23, 2011 10:14 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Apprentice
 
 Joined: 21 Jan 2010 Posts: 36 Location: Coimbatore,India 
  | 
		  
		    
			  
				Hi smdavies99,
 
 
Thanks for your reply,
 
 
   
	| Quote: | 
   
  
	| The advice given (by mqjeff I think) was DO NOT CHANGE THIS VALUE.  | 
   
 
 
 
 
I tried even that 
 
 
 
JDBCProviders
 
  DEVSOA
 
   
	| Code: | 
   
  
	    connectionUrlFormat='jdbc:oracle:thin:[user]/[password]@[serverName]:[portNu
 
mber]:[connectionUrlFormatAttr1]'
 
    connectionUrlFormatAttr1='DEVSOA'
 
    connectionUrlFormatAttr2=''
 
    connectionUrlFormatAttr3=''
 
    connectionUrlFormatAttr4=''
 
    connectionUrlFormatAttr5=''
 
    databaseName='DBSERVICES'
 
    databaseType='Oracle'
 
    databaseVersion='10.2.0'
 
    description='default_Description'
 
    environmentParms='default_none'
 
    jarsURL='D:\oracle\app\product\10.2.0\client_1\jdbc\lib'
 
    portNumber='1521'
 
    securityIdentity='Ora_Security'
 
    serverName='10.64.98.165'
 
    type4DatasourceClassName='oracle.jdbc.xa.client.OracleXADataSource'
 
    type4DriverClassName='oracle.jdbc.OracleDriver' | 
   
 
 
 
But getting same exception!! | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | mqjeff | 
		  
		    
			  
				 Posted: Sun Apr 24, 2011 5:52 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Grand Master
 
 Joined: 25 Jun 2008 Posts: 17447
  
  | 
		  
		    
			  
				
   
	| smdavies99 wrote: | 
   
  
	The advice given (by mqjeff I think) was DO NOT CHANGE THIS VALUE.
 
 
   
	| Quote: | 
   
  
	
 
connectionUrlFormat='jdbc:oracle:thin:muthu/tek123@10.56.11.123:
 
1521:DEVSOA' 
 
 | 
   
 
 | 
   
 
 
 
                  
 
 
muthu -
 
Have you confirmed that the port and host are the correct values, and that you can actually telnet to that from the broker machine? Does the DBA see that you have attempted to connect to the database and then failed for some reason?  Is there an additional message in the system log during EG startup or etc?
 
 
Otherwise, take a service trace and see if you can find more information about the cause of the failure...  
 
 
You might also try applying FixPack 9 to get lots of fixes since fixpack 5. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | muthu_tek | 
		  
		    
			  
				 Posted: Mon Apr 25, 2011 4:35 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Apprentice
 
 Joined: 21 Jan 2010 Posts: 36 Location: Coimbatore,India 
  | 
		  
		    
			  
				Dear mqjeff,
 
 
Thanks for your reply,
 
 
 
 
   
	| Quote: | 
   
  
	Have you confirmed that the port and host are the correct values, and that you can actually telnet to that from the broker machine? Does the DBA see that you have attempted to connect to the database and then failed for some reason? Is there an additional message in the system log during EG startup or etc? 
 
 
Otherwise, take a service trace and see if you can find more information about the cause of the failure...  | 
   
 
 
 
 
I tested telnet my ip address and port, Its pinging properly and more over I didn't get any exception in my DBA. I am able to establish connection using type4 jdbc connection in java without configurable service  So I am clear that DBA is not throwing any exception.
 
 
Like this I am able to connect my DBA :
 
   
	| Code: | 
   
  
	
 
String url ="jdbc:oracle:thin:muthu/tek123@10.56.11.123:1521:DEVSOA";
 
       
 
       try {
 
          Class.forName("oracle.jdbc.driver.OracleDriver");
 
 
  Connection con = DriverManager.getConnection(url, "muthu", "tek123");
 
 
       }
 
       catch( Exception e ) {
 
         System.out.println("Failed to load oracle driver.");
 
         return;
 
       }
 
      | 
   
 
 
 
But couldn't access from broker by using Configurable service DEVSOA
 
 
And I tried service trace in execution group level in broker with my DEVSOA Configurable Service. I got below message by service trace .
 
 
 
   
	| Code: | 
   
  
	
 
'RECOVERABLE reason =Unable to locate details for JDBCProvider registry entry: DEVSOA, in JDBCDatabaseManager constructor'  | 
   
 
 
 
   | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | mqjeff | 
		  
		    
			  
				 Posted: Mon Apr 25, 2011 4:49 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Grand Master
 
 Joined: 25 Jun 2008 Posts: 17447
  
  | 
		  
		    
			  
				is that the *first* exception you see in the trace?
 
 
You might need to trace the startup of the eg.  
 
 
You've confirmed that the security id is correctly setup with mqsisetdbparms? | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | muthu_tek | 
		  
		    
			  
				 Posted: Tue Apr 26, 2011 12:19 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Apprentice
 
 Joined: 21 Jan 2010 Posts: 36 Location: Coimbatore,India 
  | 
		  
		    
			  
				
   
	| Quote: | 
   
  
	| You've confirmed that the security id is correctly setup with mqsisetdbparms? | 
   
 
 
 
 
Hi mqjeff, 
 
 
Yes,You are correct. Issue is in mqsisetdbparms only.
 
 
Wrong Command
 
 
   
	| Code: | 
   
  
	| mqsisetdbparms OMNTO31T -n jdbc:Ora_Security -u muthu -p tek123 | 
   
 
 
 
 
I missed one colon in  jdbc:Ora_Security 
 
 
Correct Commad 
 
 
   
	| Code: | 
   
  
	| mqsisetdbparms OMNTO31T -n jdbc::Ora_Security -u muthu -p tek123 | 
   
 
 
 
Now Works fine .Thanks ..
 
 
 
And one more doubt Mr.mqjeff.
 
 
For example , If we have multiple database and every database has own individual userid and password .In this senerio how can set securityIdentity  in configurable service.If I want access some tables from another database by using Type 4 JDBC connection ,how can achieve this senerio.
 
 
Note : 
 
           All my database available under the  DEVSOA  ServiceName.
 
 
 
   
	| Code: | 
   
  
	DEVSOA =
 
  (DESCRIPTION =
 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.56.11.123)(PORT = 1521))
 
    (CONNECT_DATA =
 
      (SERVER = DEDICATED)
 
      (SERVICE_NAME = devsoa)
 
    )
 
  ) | 
   
 
 
 
 
And Can we do this,
 
 
Once created generic configurable service for accessing multiple   database ?
 
And I dont want stop broker again for mqsisetdbparms for every database .
 
How can we achieve this ?
 
 
Thanks for knowledge sharing!!!!           | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | mqjeff | 
		  
		    
			  
				 Posted: Tue Apr 26, 2011 1:15 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Grand Master
 
 Joined: 25 Jun 2008 Posts: 17447
  
  | 
		  
		    
			  
				Why is it important to only use one configurable service?
 
 
Why is it important to specify the security ID on the configurable service itself, rather than somewhere else? | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | muthu_tek | 
		  
		    
			  
				 Posted: Tue Apr 26, 2011 1:39 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Apprentice
 
 Joined: 21 Jan 2010 Posts: 36 Location: Coimbatore,India 
  | 
		  
		    
			  
				
   
	| Quote: | 
   
  
	Why is it important to only use one configurable service? 
 
 
Why is it important to specify the security ID on the configurable service itself, rather than somewhere else? | 
   
 
 
 
 
Yes I have to fetch Database Name  Dynamically from Database tables.
 
 
For Example,
 
 
I have a database EMPLOYEE_SERVICES .It has table name called  Employee and this table has a values  DATABASE Names  [ BONUS_SERVICES,PF_SERVICES,etc... ] .
 
 
First I am fetching data from Employee tables in default EMPLOYEE_SERVICES Database, After that I am trying to connect other Database BONUS_SERVICES dynamically and try to fetch data from Bonus table in BONUS_SERVICES  Database.
 
 
Note :
 
 
  Any Database may come which available in DEVSOA Service Name.
 
 
 
How can i do this? _________________ Thanks and Yours,
 
 
Marimuthu Udayakumar | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |