jaydebeapi icon indicating copy to clipboard operation
jaydebeapi copied to clipboard

Multiple Connections, either all at the same time or one at a time, in one script

Open EdLipson5117 opened this issue 7 years ago • 1 comments

When I run this on Windows, the first connection works. All the others fail.

`p8_dbs_connect_urls = [['d','jdbc:db2://HOST:PO00/DDDB:user=USER5m;password={0:s};sslConnection=false;'], ['d','jdbc:db2://HOST:PO02/DDDB:user=USER5m;password={0:s};sslConnection=false;'], ['d','jdbc:db2://HOST:PO00/DUDB:user=USER5m;password={0:s};sslConnection=false;'], ['p','jdbc:db2://l2p7.bnymellon.net:3600/DPDB:user=USER5m;password={0:s};sslConnection=false;']]

jardb2 = [os.path.join(os.path.split(os.path.realpath(file))[0],"db2jcc4.jar"), os.path.join(os.path.split(os.path.realpath(file))[0],"db2jcc_license_cu.jar")] drvdb2 = "com.ibm.db2.jcc.DB2Driver" conn = [] for ix,dbs_conn_url in enumerate(p8_dbs_connect_urls): logging.info("connect %s entry %d",str(datetime.now()),ix) try: conn.append(jaydebeapi.connect(drvdb2, dbs_conn_url[1].format(pwd if dbs_conn_url[0] == env else pwp), jars=jardb2)) logging.info("close %s",str(datetime.now())) conn[ix].close() except (Exception) as e: logging.error(e) `

Error connect 2017-09-28 11:20:31.642522 entry 3 An error occurred while calling z:java.sql.DriverManager.getConnection. Trace: py4j.Py4JException: Method getConnection([class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.l ang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.St ring, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.l ang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.St ring, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.l ang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.St ring, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.l ang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.St ring, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String, class java.lang.String]) does not exist at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318) at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:339) at py4j.Gateway.invoke(Gateway.java:276) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:214) at java.lang.Thread.run(Unknown Source)

I don't see much published help on how to make repeated connections to different resources. Edit - masked some literals at the request of DLP

EdLipson5117 avatar Sep 28 '17 15:09 EdLipson5117

Found a way around this. Not perfect for all cases. I put the single JDBC connection into a separate script and then use subprocess.call(command, shell=True) to run it. Not elegant, but it works for my current use case.

EdLipson5117 avatar Oct 18 '17 19:10 EdLipson5117