Some information/errors from Tomcat not being logged in Docker for Broadsea?

I’m trying to get a Databricks CDM connected to my Broadsea instance.

I am able to get the CDM instance connected to Atlas using a non-docker implementation (running Atlas locally using Tomcat).

If I use the URL below in the local instance I get the error shown below.

However, if I use the exact same configuration in Broadsea, I get the output down to the warnings, but I do not get the stack trace for the java.sql.SQLException.

Is there some configuration in Docker/Broadsea preventing the error from comming through in the logs?

URL:

jdbc:spark://dbc-9c1b9c59-a942.cloud.databricks.com:443/default;transportMode=http;UseNativeQuery=1;ssl=0;httpPath=sql/protocolv1/o/2010859959023967/0602-003109-756w8ulw;AuthMech=3;UID=token;PWD=dapi8ae48c35e859579a5531ff2005907544

Error Message (full output is attached below):

WARNING: The (sub)resource method getFeasibilityStudyList in org.ohdsi.webapi.service.FeasibilityService contains empty path annotation.
WARNING: The (sub)resource method createSource in org.ohdsi.webapi.source.SourceController contains empty path annotation.
WARNING: The (sub)resource method createAnalysis in org.ohdsi.webapi.prediction.PredictionController contains empty path annotation.
WARNING: The (sub)resource method getAnalysisList in org.ohdsi.webapi.prediction.PredictionController contains empty path annotation.

java.sql.SQLException: [Simba][SparkJDBCDriver](500593) Communication link failure. Failed to connect to server. Reason: com.simba.spark.jdbc42.internal.apache.http.NoHttpResponseException: dbc-9c1b9c59-a942.cloud.databricks.com:443 failed to respond.
        at com.simba.spark.hivecommon.api.HS2Client.handleTTransportException(Unknown Source)
        at com.simba.spark.hivecommon.api.HS2Client.openSession(Unknown Source)
        at com.simba.spark.hivecommon.api.HS2Client.<init>(Unknown Source)
        at com.simba.spark.hivecommon.api.ServiceDiscoveryFactory.createClient(Unknown Source)

Entire output for Tomcat and Broadsea/Docker is attached.

Tomcat Output:
tomcat-output.txt (54.9 KB)

Broadsea/Docker Output:
docker-webapi-output.txt (32.2 KB)

@lee_evans
@Ajit_Londhe
@Chris_Knoll
@Sanjay_Udoshi
Hoping you might be able to help.

Thanks,
John

Note: the error is comming because ssl needs to be set to ssl=1 for this connection. I’ll open another topic with the details for the error I’m seeing when I use ssl=1 for Broadsea/Docker (ssl=1 is working for the Tomcat instance I’m running locally).

— EDIT ------------
Topic for SSL error is here:
https://forums.ohdsi.org/t/ssl-error-seen-in-broadsea/19152

I’m thinking perhaps the log4j’s log level, which is set in the pom here: https://github.com/OHDSI/WebAPI/blob/master/pom.xml#L230

Are you setting a specific log level in your Tomcat installation?

I’ve been testing out adding some env var options to allow you to change the log levels.

Thanks @Ajit_Londhe, I’m using Broadsea out of the box (I haven’t modified anything from the source distribution).

I’m not sure how I would change the WebApi pom used by Broadsea (I do see the logging for the error in my local Tomcat, I do not see the logging I need in Broadsea).

The pom.xml and log4j.xml for my local instance looks like this:
pom.xml (75.3 KB)
log4j2.xml (3.3 KB)

For your local Tomcat, do you have a settings xml file?

Settings is attached below.

Thanks for the quick responses!!!

settings.xml (4.8 KB)

Doesn’t look like you’re explicitly changing the log level in your non-Broadsea installation.

I did add in the develop branch variables to increase the logging sensitivity (e.g. from “info” to “debug”):

Logging levels in log4j reference: log4j - Logging Levels

1 Like