Getting conntions failure error with JDBC Probe

Gangadhar Ravi
Giga Sage
Giga Sage

Getting connection failure when I am trying JDBC Probe. Please let me know if anyone have any Idea.

<?xml version="1.0" encoding="UTF-8"?><results error="java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'accounts\snowgenericidDBUpdat'. ClientConnectionId:977aaea7-8a69-41ae-a0e6-d52d2e24a703&#10;com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)&#10;com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)&#10;com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)&#10;com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)&#10;com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)&#10;com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)&#10;com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)&#10;com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)&#10;com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)&#10;com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)&#10;com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)&#10;com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)&#10;com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)&#10;java.sql.DriverManager.getConnection(DriverManager.java:664)&#10;java.sql.DriverManager.getConnection(DriverManager.java:208)&#10;com.service_now.mid.connections.jdbc.JDBCConnection.establishConnection(JDBCConnection.java:102)&#10;com.service_now.mid.connections.jdbc.JDBCConnection.connect(JDBCConnection.java:74)&#10;com.service_now.mid.connections.jdbc.JDBCConnectionFactory.create(JDBCConnectionFactory.java:52)&#10;com.service_now.mid.connections.ConnectionCachePool.getAvailableConnection(ConnectionCachePool.java:82)&#10;com.service_now.mid.connections.ConnectionCache.get(ConnectionCache.java:94)&#10;com.service_now.mid.probe.JDBCProbe.getJDBCConnection(JDBCProbe.java:710)&#10;com.service_now.mid.probe.JDBCProbe.probe(JDBCProbe.java:107)&#10;com.service_now.mid.probe.AProbe.process(AProbe.java:81)&#10;com.service_now.mid.queue_worker.AWorker.runWorker(AWorker.java:123)&#10;com.service_now.mid.queue_worker.AWorkerThread.run(AWorkerThread.java:20)&#10;java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)&#10;java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)&#10;java.lang.Thread.run(Thread.java:745)&#10;&#13;&#10;&#9;at com.service_now.mid.probe.JDBCProbe.getJDBCConnection(JDBCProbe.java:714)&#13;&#10;&#9;at com.service_now.mid.probe.JDBCProbe.probe(JDBCProbe.java:107)&#13;&#10;&#9;at com.service_now.mid.probe.AProbe.process(AProbe.java:81)&#13;&#10;&#9;at com.service_now.mid.queue_worker.AWorker.runWorker(AWorker.java:123)&#13;&#10;&#9;at com.service_now.mid.queue_worker.AWorkerThread.run(AWorkerThread.java:20)&#13;&#10;&#9;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)&#13;&#10;&#9;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)&#13;&#10;&#9;at java.lang.Thread.run(Thread.java:745)&#13;&#10;" probe_time="3407" result_code="900000"><result/><parameters><parameter name="agent" value="mid.server.DEV_MID_PRIMARY"/><parameter name="response_to" value=""/><parameter name="work" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;work&gt;&lt;INSERT table=&quot;dbo.SNOW_GENERIC_REQUESTS&quot;&gt;&lt;systemname&gt;test_snow&lt;/systemname&gt;&lt;generic_idname&gt;test_snow&lt;/generic_idname&gt;&lt;environment&gt;test_snow&lt;/environment&gt;&lt;app_platform&gt;test_snow&lt;/app_platform&gt;&lt;/INSERT&gt;&lt;/work&gt;"/><parameter name="from_sys_id" value=""/><parameter name="source" value="2677ee761369c3c0c2783d27d144b03b"/><parameter name="priority" value="2"/><parameter name="agent_correlator" value="2e3e32b213e9c3c0c2783d27d144b088"/><parameter name="skip_sensor" value="true"/><parameter name="processed" value=""/><parameter name="error_string" value=""/><parameter name="sys_id" value="6e3e32b213e9c3c0c2783d27d144b088"/><parameter name="sequence" value="15eedd88c9f0000001"/><parameter name="from_host" value=""/><parameter name="sys_created_on" value="2017-10-05 18:42:25"/><parameter name="name" value="JDBCProbe"/><parameter name="topic" value="JDBCProbe"/><parameter name="state" value="ready"/><parameter name="queue" value="output"/><parameter name="ecc_queue" value="6e3e32b213e9c3c0c2783d27d144b088"/></parameters></results>

10 REPLIES 10

Gangadhar Ravi
Giga Sage
Giga Sage

I am trying to send data from servicenow to local MS SQL server. so this case I think I don't need ant transform maps. If you see below link this is what I am trying to do



http://www.john-james-andersen.com/blog/service-now/using-the-servicenow-jdbcprobe.html


Hi Gangadhar,



Thanks for sharing the link. That code should work well if the parameters are correct. Can you paste your piece hiding the credential details? Alternatively, i feel you should check your connections string and url as to whether it has been created correctly. Also check the agent logs on the mid server as i previously mentioned.


Hi Venkat



This is the data source i am using and the background script.



find_real_file.png



try{

var genericDB = new JDBCProbe("DEV_MID_PRIMARY");


genericDB.setDataSource('2677ee761369c3c0c2783d27d144b03b');


genericDB.setFunction("INSERT");


genericDB.setTable("dbo.SNOW_GENERIC_REQUESTS");


genericDB.addParameter("skip_sensor","true");


genericDB.addField("systemname", "test_snow");


genericDB.addField("generic_idname", "test_snow");


genericDB.addField("environment", "test_snow");


genericDB.addField("app_platform", "test_snow");


genericDB.create();


}


catch (err) {  


  gs.logError("Workflow: Workflow Name: JDBC Probe to Update Database: caught error: " + err, "+++ Logging");  
}  

Hi Gangadhar,




If the user name and password is set correctly we should not have an issue with the code you have shared but let us try debugging it further. I have two steps below which i would like you to try:-




At first, it should ideally pick up from the data source all the details. But i have one additional change is in the data source, can you change the connection url to jdbc:sqlserver://CH3DW027165:1433;databaseName=IAM_Generic_DB;user=MyUsername;password=MyPassword




replacing MyUsername with the username and MyPassword with password..just to see if that picks up. ideally it should fetch everything from the data source.




If that doesnt work, the next option i would be trying is the below code...






var genericDB = new JDBCProbe("DEV_MID_PRIMARY");


genericDB.setDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver");


genericDB.setConnectionString("jdbc:sqlserver://CH3DW027165:1433;databaseName=IAM_Generic_DB;user=MyUsername;password=MyPassword")


genericDB.setDataSource('2677ee761369c3c0c2783d27d144b03b');


genericDB.setFunction("INSERT");


genericDB.setTable("dbo.SNOW_GENERIC_REQUESTS");


genericDB.addParameter("skip_sensor","true");


genericDB.addField("systemname", "test_snow");


genericDB.addField("generic_idname", "test_snow");


genericDB.addField("environment", "test_snow");


genericDB.addField("app_platform", "test_snow");


genericDB.create();




Again replacing myUsername and Mypassword with appropriate values


Hi Venkat



I already tried both of this but the server that we are using it only allows windows authentication so   enabled this option in data source to use windows authentication. but still having connecting issues any idea?



find_real_file.png