OHDSI Home | Forums | Wiki | Github

No Data in Atlas and Vocab Version missing

Hello,

I was able to run Achilles successfully in my environment, I am on CentOS, postgresql db, nginx as a webserver.

But when I deployed Atlas, I do not see any data or Achilles reports showing up, its showing all the boxes as NO DATA and the configuration part do not show with vocabulary version.
I tried to run http://localhost:8080/WebAPI/vocabulary/vocab/info and I get the following
{“payload”:{“cause”:null,“stackTrace”:[{“methodName”:“getInfo”,“fileName”:“VocabularyService.java”,“lineNumber”:848,“className”:“org.ohdsi.webapi.service.VocabularyService”,“nativeMethod”:false},{“methodName”:“invoke0”,“fileName”:“NativeMethodAccessorImpl.java”,“lineNumber”:-2,“className”:“sun.reflect.NativeMethodAccessorImpl”,“nativeMethod”:true},{“methodName”:“invoke”,“fileName”:“NativeMethodAccessorImpl.java”,“lineNumber”:62,“className”:“sun.reflect.NativeMethodAccessorImpl”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“DelegatingMethodAccessorImpl.java”,“lineNumber”:43,“className”:“sun.reflect.DelegatingMethodAccessorImpl”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“Method.java”,“lineNumber”:498,“className”:“java.lang.reflect.Method”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“ResourceMethodInvocationHandlerFactory.java”,“lineNumber”:81,“className”:“org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1”,“nativeMethod”:false},{“methodName”:“run”,“fileName”:“AbstractJavaResourceMethodDispatcher.java”,“lineNumber”:144,“className”:“org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“AbstractJavaResourceMethodDispatcher.java”,“lineNumber”:161,“className”:“org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher”,“nativeMethod”:false},{“methodName”:“doDispatch”,“fileName”:“JavaResourceMethodDispatcherProvider.java”,“lineNumber”:205,“className”:“org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker”,“nativeMethod”:false},{“methodName”:“dispatch”,“fileName”:“AbstractJavaResourceMethodDispatcher.java”,“lineNumber”:99,“className”:“org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“ResourceMethodInvoker.java”,“lineNumber”:389,“className”:“org.glassfish.jersey.server.model.ResourceMethodInvoker”,“nativeMethod”:false},{“methodName”:“apply”,“fileName”:“ResourceMethodInvoker.java”,“lineNumber”:347,“className”:“org.glassfish.jersey.server.model.ResourceMethodInvoker”,“nativeMethod”:false},{“methodName”:“apply”,“fileName”:“ResourceMethodInvoker.java”,“lineNumber”:102,“className”:“org.glassfish.jersey.server.model.ResourceMethodInvoker”,“nativeMethod”:false},{“methodName”:“run”,“fileName”:“ServerRuntime.java”,“lineNumber”:326,“className”:“org.glassfish.jersey.server.ServerRuntime$2”,“nativeMethod”:false},{“methodName”:“call”,“fileName”:“Errors.java”,“lineNumber”:271,“className”:“org.glassfish.jersey.internal.Errors$1”,“nativeMethod”:false},{“methodName”:“call”,“fileName”:“Errors.java”,“lineNumber”:267,“className”:“org.glassfish.jersey.internal.Errors$1”,“nativeMethod”:false},{“methodName”:“process”,“fileName”:“Errors.java”,“lineNumber”:315,“className”:“org.glassfish.jersey.internal.Errors”,“nativeMethod”:false},{“methodName”:“process”,“fileName”:“Errors.java”,“lineNumber”:297,“className”:“org.glassfish.jersey.internal.Errors”,“nativeMethod”:false},{“methodName”:“process”,“fileName”:“Errors.java”,“lineNumber”:267,“className”:“org.glassfish.jersey.internal.Errors”,“nativeMethod”:false},{“methodName”:“runInScope”,“fileName”:“RequestScope.java”,“lineNumber”:317,“className”:“org.glassfish.jersey.process.internal.RequestScope”,“nativeMethod”:false},{“methodName”:“process”,“fileName”:“ServerRuntime.java”,“lineNumber”:305,“className”:“org.glassfish.jersey.server.ServerRuntime”,“nativeMethod”:false},{“methodName”:“handle”,“fileName”:“ApplicationHandler.java”,“lineNumber”:1154,“className”:“org.glassfish.jersey.server.ApplicationHandler”,“nativeMethod”:false},{“methodName”:“serviceImpl”,“fileName”:“WebComponent.java”,“lineNumber”:473,“className”:“org.glassfish.jersey.servlet.WebComponent”,“nativeMethod”:false},{“methodName”:“service”,“fileName”:“WebComponent.java”,“lineNumber”:427,“className”:“org.glassfish.jersey.servlet.WebComponent”,“nativeMethod”:false},{“methodName”:“service”,“fileName”:“ServletContainer.java”,“lineNumber”:388,“className”:“org.glassfish.jersey.servlet.ServletContainer”,“nativeMethod”:false},{“methodName”:“service”,“fileName”:“ServletContainer.java”,“lineNumber”:341,“className”:“org.glassfish.jersey.servlet.ServletContainer”,“nativeMethod”:false},{“methodName”:“service”,“fileName”:“ServletContainer.java”,“lineNumber”:228,“className”:“org.glassfish.jersey.servlet.ServletContainer”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:303,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:208,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“WsFilter.java”,“lineNumber”:52,“className”:“org.apache.tomcat.websocket.server.WsFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:241,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:208,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ProxiedFilterChain.java”,“lineNumber”:61,“className”:“org.apache.shiro.web.servlet.ProxiedFilterChain”,“nativeMethod”:false},{“methodName”:“executeChain”,“fileName”:“AdviceFilter.java”,“lineNumber”:108,“className”:“org.apache.shiro.web.servlet.AdviceFilter”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“AdviceFilter.java”,“lineNumber”:137,“className”:“org.apache.shiro.web.servlet.AdviceFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:125,“className”:“org.apache.shiro.web.servlet.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ProxiedFilterChain.java”,“lineNumber”:66,“className”:“org.apache.shiro.web.servlet.ProxiedFilterChain”,“nativeMethod”:false},{“methodName”:“executeChain”,“fileName”:“AbstractShiroFilter.java”,“lineNumber”:449,“className”:“org.apache.shiro.web.servlet.AbstractShiroFilter”,“nativeMethod”:false},{“methodName”:“call”,“fileName”:“AbstractShiroFilter.java”,“lineNumber”:365,“className”:“org.apache.shiro.web.servlet.AbstractShiroFilter$1”,“nativeMethod”:false},{“methodName”:“doCall”,“fileName”:“SubjectCallable.java”,“lineNumber”:90,“className”:“org.apache.shiro.subject.support.SubjectCallable”,“nativeMethod”:false},{“methodName”:“call”,“fileName”:“SubjectCallable.java”,“lineNumber”:83,“className”:“org.apache.shiro.subject.support.SubjectCallable”,“nativeMethod”:false},{“methodName”:“execute”,“fileName”:“DelegatingSubject.java”,“lineNumber”:383,“className”:“org.apache.shiro.subject.support.DelegatingSubject”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“AbstractShiroFilter.java”,“lineNumber”:362,“className”:“org.apache.shiro.web.servlet.AbstractShiroFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:125,“className”:“org.apache.shiro.web.servlet.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:241,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:208,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“executeChain”,“fileName”:“AdviceFilter.java”,“lineNumber”:108,“className”:“org.apache.shiro.web.servlet.AdviceFilter”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“AdviceFilter.java”,“lineNumber”:137,“className”:“org.apache.shiro.web.servlet.AdviceFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:125,“className”:“org.apache.shiro.web.servlet.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:241,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:208,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“RequestContextFilter.java”,“lineNumber”:99,“className”:“org.springframework.web.filter.RequestContextFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:241,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:208,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“HttpPutFormContentFilter.java”,“lineNumber”:105,“className”:“org.springframework.web.filter.HttpPutFormContentFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:241,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:208,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“HiddenHttpMethodFilter.java”,“lineNumber”:81,“className”:“org.springframework.web.filter.HiddenHttpMethodFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:241,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:208,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“CharacterEncodingFilter.java”,“lineNumber”:197,“className”:“org.springframework.web.filter.CharacterEncodingFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:241,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:208,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ErrorPageFilter.java”,“lineNumber”:115,“className”:“org.springframework.boot.web.support.ErrorPageFilter”,“nativeMethod”:false},{“methodName”:“access$000”,“fileName”:“ErrorPageFilter.java”,“lineNumber”:59,“className”:“org.springframework.boot.web.support.ErrorPageFilter”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“ErrorPageFilter.java”,“lineNumber”:90,“className”:“org.springframework.boot.web.support.ErrorPageFilter$1”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ErrorPageFilter.java”,“lineNumber”:108,“className”:“org.springframework.boot.web.support.ErrorPageFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:241,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:208,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“StandardWrapperValve.java”,“lineNumber”:219,“className”:“org.apache.catalina.core.StandardWrapperValve”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“StandardContextValve.java”,“lineNumber”:110,“className”:“org.apache.catalina.core.StandardContextValve”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“AuthenticatorBase.java”,“lineNumber”:494,“className”:“org.apache.catalina.authenticator.AuthenticatorBase”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“StandardHostValve.java”,“lineNumber”:169,“className”:“org.apache.catalina.core.StandardHostValve”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“ErrorReportValve.java”,“lineNumber”:104,“className”:“org.apache.catalina.valves.ErrorReportValve”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“AccessLogValve.java”,“lineNumber”:1025,“className”:“org.apache.catalina.valves.AccessLogValve”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“StandardEngineValve.java”,“lineNumber”:116,“className”:“org.apache.catalina.core.StandardEngineValve”,“nativeMethod”:false},{“methodName”:“service”,“fileName”:“CoyoteAdapter.java”,“lineNumber”:445,“className”:“org.apache.catalina.connector.CoyoteAdapter”,“nativeMethod”:false},{“methodName”:“process”,“fileName”:“AbstractHttp11Processor.java”,“lineNumber”:1137,“className”:“org.apache.coyote.http11.AbstractHttp11Processor”,“nativeMethod”:false},{“methodName”:“process”,“fileName”:“AbstractProtocol.java”,“lineNumber”:637,“className”:“org.apache.coyote.AbstractProtocol$AbstractConnectionHandler”,“nativeMethod”:false},{“methodName”:“run”,“fileName”:“JIoEndpoint.java”,“lineNumber”:318,“className”:“org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor”,“nativeMethod”:false},{“methodName”:“runWorker”,“fileName”:“ThreadPoolExecutor.java”,“lineNumber”:1149,“className”:“java.util.concurrent.ThreadPoolExecutor”,“nativeMethod”:false},{“methodName”:“run”,“fileName”:“ThreadPoolExecutor.java”,“lineNumber”:624,“className”:“java.util.concurrent.ThreadPoolExecutor$Worker”,“nativeMethod”:false},{“methodName”:“run”,“fileName”:“TaskThread.java”,“lineNumber”:61,“className”:“org.apache.tomcat.util.threads.TaskThread$WrappingRunnable”,“nativeMethod”:false},{“methodName”:“run”,“fileName”:“Thread.java”,“lineNumber”:748,“className”:“java.lang.Thread”,“nativeMethod”:false}],“message”:null,“localizedMessage”:null,“suppressed”:[]},“headers”:{“id”:“9bbe844d-5496-efc1-fc74-bd076757489e”,“timestamp”:1553785793025}}

Need help so it shows correct version of it.
Source and Source Daimon configuration are as follows:
1 “OHDSI” “omop_cdm” “jdbc:postgresql://localhost:5432/omop_cdm?user=omopuser&password=omopuser” “postgresql”

Source_Daimon:
3 1 2 “results” 2
1 1 0 “omop_cdm” 1
2 1 1 “omop_cdm” 0

Also attached are the screenshot for Atlas window.

I am really stuck here, I tried removing all the results table and rebuilding them.Restarting webserver too. Not able to identify where the problem is, however Achilles worked fine.

Need urgent help.

Thank you for reading the long post, I believe this will help other users to figure out the solution if they get stuck somewhere.

Hi, what is there in your omop_cdm.omop_cdm schema?

$ psql omop_cdm postgres
omop_cdm=# SELECT * FROM omop_cdm.vocabulary LIMIT 5;

For instance, my database is:

incor_cdm=# select * from cdm5.vocabulary limit 5;
    vocabulary_id     |   vocabulary_name    |                              vocabulary_reference                               | vocabulary_version | vocabulary_concept_id
----------------------+----------------------+---------------------------------------------------------------------------------+--------------------+----------------------
 Cohort Type          | OMOP Cohort Type     | OMOP generated                                                                  |                    |              44819234
 Cost Type            | OMOP Cost Type       | OMOP generated                                                                  |                    |                  5029
 Death Type           | OMOP Death Type      | OMOP generated                                                                  |                    |              44819135
 UB04 Typ bill        | UB04 Typ bill        | https://ushik.ahrq.gov/ViewItemDetails?&system=apcd&itemKey=196987000           |                    |                 32044
 UB04 Point of Origin | UB04 Point of Origin | https://www.resdac.org/cms-data/variables/Claim-Source-Inpatient-Admission-Code |                    |                 32045
(5 rows)

@limadm
yes, I have the same entries in vocabulary.

@ambuj
Were you able to resolve the issues related to Vocabulary data?

In the source_daimon table, have the priority of all the 3 entries as 0. That’s the only thing I am able to see. Update the records and try again.

Yes, the issue got resolved, I actually had a wrong entry in source table.

Thanks

@ambuj
I think I am having similar issues with my accessing my vocabulary information. Can you share the exact issue you had so that I can check on my side if its the same issue for me also.

I want to know few things -

  1. Do you have a single schema for CDM and Vocabularies?
  2. Have you created results schema?
  3. Send me the entries you made in source and source_daimon tables.
  4. In google chrome, go to developer options, reload the atlas and send me the error.

May be I can help with above details.

@ambuj

Thank you for helping me. Here is the information from my end:

  1. Yes, we have one schema for CDM and Vocabulary. I created all the Vocabulary tables in to the CDM Schema and populated them with data from zip file (downloaded from Athena)
  2. Yes the Results schema is created separately and I created all the tables in this schema using the DDL from the path : /WebAPI/target/classes/ddl/results
    Here I have run all the table creation scripts and ignored the files that are loading data and the names of these files are initTables.sql, init_heracles_periods.sql, init_heracles_analysis.sql, init_concept_hierarchy.sql (i did not run these files). Let me know if this is ok?
  3. The entries from source and source_daimon are attached
  4. Error attached.

The entries looks good to me except the schema names which have ## in it. Are you using Apache tomcat as a webservice? and are you able to open localhost:8080/WebAPI/source/sources ?
Also, please share the scrrenshot of database and schema from GUI you are using to query the database.

@ambuj,

The ## in our schema names is a policy in our institution and we cannot change that.
Yes I am able to see the sources by calling the localhost:8080/WebAPI/source/sources
“please share the scrrenshot of database and schema from GUI you are using to query the database.” - I did not get this point. Out DB is Oracle, so do you mean the UI of SQL plus.
Also, which DB, like we have CDM and RESULTS on oracle. OHDSI DB is on PostGres.

Well, I am not sure on how postgres will query the result tables in oracle. I am blank here, please see if this link will help you out.

That is going to be a conflict with our queries. the ## represents a temp table name in MSSQL, which is the root dialect that we translate our queries across oracle, pdw, redshift, bigquery, postgresql, and impala.

Unless you get some sort of exception, you won’t be able to execute the queries.

@Chris_Knoll,
I did not get you. When you say an ‘exception’, do you mean exception in the schema naming at our end?
Like do we need to rename the schemas and try or did you mean an exception for something else?

I mean an exception to your naming convention/ You said:

If your institution can’t make an exception then you won’t be able to run the queries.

If you can privately change the schema names and try it again, yes, you can do that to see what other problems you might experience. But if you can’t roll it out without having ## in the schema name, then you’re out of luck.

@Chris_Knoll
Thanks for the updates Chris!
I have requested for an exception and go the approval to change the names of our schemas. It should be done next week. I will try it after that and let you know.

Thanks for you help and support. I really appreciate it.

@Chris_Knoll
One quick question. Please see the screenshot attached, which is from the console when I accessed the vocabularies. I am assuming the reason for the error is still the Schema names having ‘##’.
Can you please correct me if i am wrong?
achilles_error_20Apr19_1

Yes, the ## are confusing the query translator into thinking there’s temporary tables, when there aren’t.

You might find the exact error in your tomcat logs, but if you still have ## in your schema names, I wouldn’t bother trying anything: the queries will fail to parse properly with ## in them.

@Chris_Knoll,

Finally we could get the schema names changes and here are the details of the sources defined and the configurations I am seeing in Atlas.

But I still see the Vocabulary error that I mentioned earlier. And also in the Catalina.out file i see this error whenever I access Atlas - Datasources tab.

2019-04-23 15:27:14.466 INFO http-nio-8080-exec-1 com.odysseusinc.logging.LoggingService - - Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:cdm/password@server:1521/SID

I have the Jar file placed in the Tomcat server shown in the schreenshot. Not sure why I am still not able to get the connection. Any help is much appreciated.

It can’t resolve the driver, either the JDBC url is wrong format, or you don’t have the oracle driver in your classpath.

Check your logs again, we output which JDBC drivers were loaded. You will see an error message indicating the oracle driver was not loaded if it failed to load.

As far as the JDBC url format, i look at some documentation here:
https://razorsql.com/docs/help_oracle.html

Looks like the fomrat should be jdbc:oracle:thin:@//<host>:<port>/ServiceName. I would recommend you get a JDBC sql IDE (like SQLWorkbench) to test connecting to your oracle server by JDBC.

-Chris

@Chris_Knoll,

Thanks for your inputs Chris! I updated the url in the source table and it is like this now:
INSERT INTO webapi.source (source_id, source_name, source_key, source_connection, source_dialect) VALUES (1, ‘Truven CDM’, ‘TRUV_CDM’, ’ jdbc:oracle:thin:@//server:1521/sid’, ‘oracle’);

However I am still getting the error related to OJDBC driver:

2019-04-24 09:34:23.720 INFO http-nio-8080-exec-2 com.odysseusinc.logging.LoggingService - - Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:cdm/TsZE5nuVc6@129.106.31.193:1521/truven
2019-04-24 09:34:30.792 INFO http-nio-8080-exec-9 com.odysseusinc.logging.LoggingService - - Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:cdm/TsZE5nuVc6@129.106.31.193:1521/truven
2019-04-24 09:34:30.820 INFO http-nio-8080-exec-4 com.odysseusinc.logging.LoggingService - - Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:uname/pwd@server:port/sid
2019-04-24 10:09:39.085 INFO http-nio-8080-exec-10 com.odysseusinc.logging.LoggingService - - Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@//server:1521/sid
2019-04-24 10:10:32.658 INFO http-nio-8080-exec-1 com.odysseusinc.logging.LoggingService - - Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@//server:1521/sid

One basic question:
The connection that uses the url in webapi.source table is between the Webserver (the one on which Atlas is installed) and Oracle DB (CDM/VOCAB/RESULTS)
or Between the WebAPI Database (postgresql in our case) and the Oracle DB ((CDM/VOCAB/RESULTS)

t