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