JChem cartridge / Inforsense / license limitation

User 7f41c447c9

03-07-2006 09:02:08

I evaluate JChem cartridge through Inforsense KDE.


When I use Inforsense "JChem Substructure Filter" node to search all compounds in query_jc table against lib_jc table (library table) it produces the following sql:





Code:
select SMI, ID, SMILES, jc_matchcount(SMI, SMILES) as match_count


  from (SELECT * FROM "JCHEM"."LIB_JC"),


       (SELECT * from (SELECT * FROM "JCHEM"."QUERY_JC"))


 where (jc_contains(SMI, SMILES)) = 1






Since the QUERY_JC table contains more than 10 compounds and I evaluate


Jchem cartridge with a license permitting 10 search per minute I get no results only an error message stating that the maximal search per minute was exceeded. It is somehow strange because only one search was started in one single sql sentence.

ChemAxon aa7c50abf8

03-07-2006 09:58:29

It is strange indeed.





The first thing that comes to my mind is that KDE may execute invisible searches on its own.





Please, could you enable extra output for JChemStreams in Tomcat? You can do this by


1) pointing your WEB-browser to the JChemStreams URL (e.g. http://localhost:8090/jchemstreams);


2) following the link Configure JChem Cartridge for Oracle...;


3) setting Extra information to the standard error to "on"





Having done this, output similar to the following will appear in the file <tomcat-home>/logs/catalina.out for subsequent JChem Cartrdige searches:





Code:
Mon Jul 03 11:35:39 CEST 2006


Search mode: SUBSTRUCTURE


Structure table: JCHEMUSER.JCXNCI_1K_JCX


Query: CN(C)C1=C(Cl)C(=O)c2ccccc2C1=O


Screened: 1


Hits: 1


Total time: 17 ms  Screening: 0 ms


Processing threads: 2


Current / peak / maximum searches per minute: 40 / 40 / Unlimited








The last (self-explanatory) line contains the information on the number of searches and search limit.





Please, could you verify in this output that it contains what you expect?





Please, note that the name of the output file may vary depending on your Tomcat version. With Tomcat 5.x, the file may be called stdout_<date>.log. (The information is programmatically written onto the standard error, but it seems to generally end up in the stdout_<date>.log file. Still, if you do not find it in stdout_<date>.log, it is worthwhile looking into stderr_<date>.log.)

User 7f41c447c9

03-07-2006 15:05:16

The above quoted sql makes JChem to count queries row by row from the query table so every single line in query_jc table is a new search in catalina.out

ChemAxon aa7c50abf8

03-07-2006 16:07:25

Does the last line for the last search look in "catalina.out" something like





Code:
Current / peak / maximum searches per minute: 10 / 40 / 10
?

User 7f41c447c9

10-07-2006 06:45:18

I copy here the last two record from catalina.out plus the error messages.


Now I used pure sql window not Inforsense to run the following query:





Code:



select SMI, ID, SMILES, jc_compare(SMI, SMILES, 't:ef') as new_column


  from (SELECT * FROM "JCHEM"."A"),


       (SELECT * FROM "JCHEM"."B")


       where jc_compare(SMI, SMILES, 't:ef') =1


Quote:



Mon Jul 10 08:31:19 CEST 2006


Search mode: EXACT_FRAGMENT


Structure table: JCHEM.A_INDX_JCX


Query:


Screened: 0


Hits: 0


Total time: 93 ms Screening: 43 ms


Processing threads: 2


Current / peak / maximum searches per minute: 9 / 10 / 10








Mon Jul 10 08:31:19 CEST 2006


Search mode: EXACT_FRAGMENT


Structure table: JCHEM.A_INDX_JCX


Query:


Screened: 0


Hits: 0


Total time: 91 ms Screening: 40 ms


Processing threads: 2


Current / peak / maximum searches per minute: 10 / 10 / 10





Too many searches in the last minute.


If needed, plase contact sales _at_ chemaxon.com


for a license key that allows more searches


per minute


chemaxon.jchem.db.MaxSearchFrequencyExceededException: Maximum number of searches allowed per minute is exceeded. Please try it later.


at chemaxon.jchem.db.JChemSearch.search1(JChemSearch.java:2078)


at chemaxon.jchem.db.JChemSearch.search(JChemSearch.java:1916)


at chemaxon.jchem.db.JChemSearch.setRunning(JChemSearch.java:1802)


at chemaxon.jchem.db.JChemSearch.run(JChemSearch.java:1822)


at chemaxon.jchem.interop.core.InteropJChemSearch.run(InteropJChemSearch.java:414)


at chemaxon.jchem.interop.core.InteropJChemSearch.search0(InteropJChemSearch.java:364)


at chemaxon.jchem.interop.core.InteropJChemSearch.search(InteropJChemSearch.java:332)


at chemaxon.jchem.interop.core.InteropJChemSearch.search(InteropJChemSearch.java:301)


at chemaxon.jchem.cartridge.servlets.JChemCached.doSearch(JChemCached.java:529)


at chemaxon.jchem.cartridge.servlets.JChemCached.doPerform(JChemCached.java:325)


at chemaxon.jchem.cartridge.servlets.JChemCached.process(JChemCached.java:84)


at chemaxon.jchem.cartridge.servlets.JChemServletBase.doPost(JChemServletBase.java:232)


at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)


at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)


at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)


at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)


at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)


at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)


at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)


at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)


at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)


at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)


at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)


at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)


at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)


at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)


at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)


at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)


at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)


at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)


at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)


at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)


at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)


at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)


at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)


at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)


at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)


at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)


at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)


at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)


at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)


at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)


at java.lang.Thread.run(Thread.java:534)


ChemAxon aa7c50abf8

10-07-2006 07:16:12

On the face of it, this output tells me that you were allowed to run 10 searches a minute and when you were proceeding to execute the 11th search, the operation was aborted with an exception.





Is the "Current" number of searches in the entry "Current / peak / maximum searches per minute:" advancing in the output in increments by one from 1 through 10 like follows?





1 / 10 / 10


2 / 10 / 10


3 / 10 / 10


4 / 10 / 10


...


10 / 10 / 10





Can you identify any of your query structures in your table as missing from any of the query entries in the Tomcat output? How many of them is missing from the Tomcat output?





By the way, I assume both SMI and SMILES are a column of either A or B, but not of both. Is this assumption correct? (Must be correct, otherwise you should have received "ambiguous column reference" errors, but who knows...)





Thanks


Peter