0

I'm trying to connect a Java based program running through Tomcat to a CONNX database, but I'm getting the error in the title. This is the code I have, with some identifying information removed:

  String driver = "com.Connx.jdbc.TCJdbc.TCJdbcDriver";
  String connectionString = "jdbc:connx:DD=praxav11;Gateway=<server name>";
  String user = "<user>";
  String pass = "<pass>";
  Class.forName(driver); 
  dbConnection = java.sql.DriverManager.getConnection(connectionStr, user, password);

I've been using instructions from:

http://www.connx.com/products/connx/CONNX%2010%20UserGuide/connxcdd32a/opening_a_connection_jdbc_driver.htm

"praxav11" I got from the DSNR tool, according to which is the CDD-DSN for the CDD I want so I'm pretty confident that is right.

For the gateway I've tried both the server name and the server IP. Username and password I'm quite confident are correct and I would get a different error for those anyway I guess.

Does anybody have any ideas for what is wrong or suggestions for what to try? I'm really drawing a blank on this and have tried brute forcing it but I just can't get it to work.

The full error is:

com.$company.DBDataSetException: java.sql.SQLException: Connection refused: connect
at com.$company.DBDatabase.setConnection(DBDatabase.java:43)
at em.cabbench.$client.ERPInterface$client.connectToConnx(ERPInterface$client.java:137)
at em.cabbench.$client.ERPInterface$client.getERPRawMaterialPrice(ERPInterface$client.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at em.cabbench.RequestTypes.call(RequestTypes.java:1120)
at em.cabbench.CabBenchSrv.processRequest(CabBenchSrv.java:988)
at em.cabbench.CabBenchSrv.doGet(CabBenchSrv.java:828)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

Caused by: java.sql.SQLException: Connection refused: connect
at com.Connx.jdbc.TCJdbc.TCJdbcDriver.connect(TCJdbcDriver.java:251)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.$company.DBDatabase.setConnection(DBDatabase.java:40)
... 23 more

Couldn't connect to CONNX
java.lang.NullPointerException
at com.$company.DBDatabase.closeConnection(DBDatabase.java:66)
at em.cabbench.$client.ERPInterface$client.getERPRawMaterialPrice(ERPInterface$client.java:171)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at em.cabbench.RequestTypes.call(RequestTypes.java:1120)
at em.cabbench.CabBenchSrv.processRequest(CabBenchSrv.java:988)
at em.cabbench.CabBenchSrv.doGet(CabBenchSrv.java:828)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Joe
  • 1
  • 1

3 Answers3

1

I hope the database server is accessible from the machine on which you are running the code....

acearch
  • 343
  • 1
  • 8
  • It's on the same network and I can access it via Explorer, but does that guarantee that Tomcat would be able to connect to it? Could it be a firewall stopping it from connecting? – Joe May 08 '15 at 10:27
0

Good point...maybe you can try this workaround since you are in Tomcat.. Use this link
http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html to set up the database resource in the context file. Refer to it within the web.xml file of your application. And write a code snippet which looks up the JNDI and makes a connection. This will confirm what the issue is through TomCats eyes.

Dont forget to copy the CONNX jar file containing the drivers into the Tomcat home (CATALINA_HOME) before you run your code.

acearch
  • 343
  • 1
  • 8
0
Class.forName("com.Connx.jdbc.TCJdbc.TCJdbcDriver").newInstance();
TCJdbcDataSource ds = new TCJdbcDataSource();
ds.setGateway("<GateWay_IP>");
ds.setPort((short)7500); //default port
ds.setDSN("<Your_DSN_IP>");
ds.setUser("<UserName>");
Connection con = ds.getConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
Martin
  • 1