Win a copy of Mesos in Action this week in the Cloud/Virtualizaton forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

ARRRGHH DB2-WebSphere AppServer JDBC connection Error on AIX

 
joe boone
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
We are using WebSphere App Server AE 3.5.3 with DB2 6.1 sp5. Both are installed on an AIX box.
We have configured the appropriate datasource called "nssdb" in the WebSphere using the "com.ibm.jdbc.app" driver. we also
selected db2java.zip in "/home/db2inst1/sqllib/java12" .
When we run the servlet below, although we are able to get the Datasource object properly from the lookup, we are not able to get a connection
from the data source (using conn = ds.getConnection).
We get the follwoing errors:
when URL is jdbc:jta:db2 and JTA is enabled
Get connection statement from com.ibm.ejs.cm.JTADataSource@c758afe8 [nssdb]exception: java.lang.UnsatisfiedLinkError: no library db2jdbc (libdb2jdbc.a or .so) in java.library.path.
when url is jdbc:db2 and JTA is disabled
Get connection statement from com.ibm.ejs.cm.JDBCDataSource@2f03221f [nssdb]exception: Error loading JDBC driver: com.ibm.db2.jdbc.app.DB2Driver.
We have tried setting up vaious env variables such as
export
CLASSPATH=$CLASSPATH:/home/db2inst1/sqllib/java12/db2java.zip
LIBPATH=$LIBPATH:/home/db2inst1/sqllib/java12:/home/db2inst1/sqllib/
LIB=$LIB:/home/db2inst1/sqllib/java12:/home/db2inst1/sqllib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH/home/db2inst1/sqllib/java12:/home/db2inst1/sqllib
DB2INSTANCE=db2inst1
NONE of the above has helped.
The support doc "http://www-4.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/document.d2w/report?&fn=1008029"
ALSO DID NOT HELP.
Copying lbdb2jdbc.so to the "/usr/WebSphere/AppServer/bin" directory helps: The "UnsatisfiedLinkError" goes away but then we
get another error: Get connection statement from com.ibm.ejs.cm.JTADataSource@c758afe8 [nssdb]exception: SQLAllocEnv() Error: rc = -1.
Can anyone help? May be you can forward this to somebody who could?
============code below====================================
public class NSSEventServlet extends HttpServlet
{

private static DataSource ds = null;


public void init(ServletConfig config) throws ServletException
{

super.init(config);
try
{
Hashtable parms = new Hashtable();
parms.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.ejs.ns.jndi.CNInitialContextFactory");
Context ctx = new InitialContext(parms);
ds = (DataSource)ctx.lookup("jdbc/nssdb");
}
catch (Exception e)
{
System.out.println("Naming service exception: " + e.getMessage());
}

}


public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException
{
Connection conn = null;
try
{
==ERROR=====> conn = ds.getConnection( "testuser" , "password"); <=========E R R O R ======================
}
catch (Exception e)
{
sendErrorPage(res, "Get connection statement " + "exception: " + e.getMessage());
}
}
 
Julio Lopez
Greenhorn
Posts: 28
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A few things, in the "/home/db2inst1/sqllib/java12" directory is there a file called "inuse"? Also, make sure that the db2java.zip file is in the directory, when you run "usejdbc2" some files including db2java.zip get decompressed from a file and then are transferred to the (most probably, I am a Windows user) "/home/db2inst1/sqllib/java" directory. So while I am confident you know what you are doing, make sure that db2java.zip is still in that directory. If it is not, Uninstall the DB/2 driver instance in the administrative console and Install it pointing to the db2java.zip file in the "/home/db2inst1/sqllib/java" directory. Check this stuff out and let me know.
Julio Lopez
M-Group Systems
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic