jc_tanimotob operator problems

User 7bdb8e43f2

18-12-2009 10:19:02

Hi,


I am having a couple of strange problems using jc_tanimotob in an environment here. Using jc_containsb for substructure works perfectly fine but jc_tanimotob does not.


Running the following query:



select CD_ID from eln.JCELNMOL_MOLTABLE molsStructure where jc_tanimotob(molsStructure.cd_structure,(select bmolfile from tempmoljchem where pkey = 6144)) >= 0.50;


Gives an error like:


ORA-29902: ett fel intraffade nar rutinen ODCIIndexStart() kordes
ORA-29532: Java-anrop avslutades av ouppf?ngat Java-undantag:
java.rmi.ServerException: RemoteException occurred in server thread; nested
exception is:
java.rmi.RemoteException: For input string: ",5"
ORA-06512: vid "JCHEM.JCHEM_BLOB_PKG", rad 93
ORA-06512: vid "JCHEM.JC_IDXTYPE_IM", rad 303


It seems there a problem with interpreting 0.50 to ,5 somewhere within the cartridge. Trying to give the parameter in the form (50/100) gives the same problem. Is there a way to control this behaviour?


If I try to run jc_tanimotob with an integer parameter or just list the similarity values in the result set using a statement like:


select CD_ID,jc_tanimotob(molsStructure.cd_structure,(select bmolfile from tempmoljchem where pkey = 6144)) Similarity from eln.JCELNMOL_MOLTABLE molsStructure; 

... I get an even stranger error. I get:


ORA-29531: there is no method getSimilarityValue in the class
chemaxon/jchem/cartridge/JCFunctionsBlob
ORA-06512: vid "JCHEM.JCHEM_BLOB_PKG", rad 103
ORA-06512: vid "JCHEM.TANIMOTO_FUNCB", rad 28


What are yout thoughts on this matter? How come some operators work and some don't? And how can I give decimal similarity parameters?


Thank you in advance,


Erik


Oracle environment: 
Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for 64-bit Windows: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
JChem Server environment:
Java VM vendor: Sun Microsystems Inc.
Java version: 1.6.0_17
Java VM version: 14.3-b01
JChem version: 5.2.6
JChem Index version: 5020400
JDBC driver version: 11.1.0.7.0-Production

User 7bdb8e43f2

18-12-2009 13:35:07


ALTER SESSION set NLS_LANGUAGE = 'AMERICAN';
ALTER SESSION set NLS_TERRITORY = 'AMERICA';


Altering the session's NLS gets rid of both problems.


Seems the cartridge requires the calling session to be AMERICAN_AMERICA. At lease it does not support SWEDEN_SWEDISH.


I'd like to post a CR that either the cartridge installer checks for this when installing or the cartridge becomes insensitive to it.


Thanks,
Erik

User 7bdb8e43f2

18-12-2009 14:02:10

I was too early...


select CD_ID
from eln.JCELNMOL_MOLTABLE molsStructure
where jc_tanimotob(molsStructure.cd_structure,(select bmolfile from tempmoljchem where pkey = 6184)) >= 0.7

The above SQL works.


But the blow SQL gives the cannot find getSimilarityValue error from my first post.


select CD_ID
from eln.JCELNMOL_MOLTABLE molsStructure
where jc_tanimotob(molsStructure.cd_structure,(select bmolfile from tempmoljchem where pkey = 6184)) >= 0.7 and jc_tanimotob(molsStructure.cd_structure,(select bmolfile from tempmoljchem where pkey = 6184)) >= 0.7


Am I not allowed to use "and" between jc_tanimotob calls?


Regards,


Erik
 

ChemAxon aa7c50abf8

18-12-2009 15:27:27

Hi Erik,


When I set the locale like this:


"ALTER SESSION set NLS_LANGUAGE = 'SWEDISH'",

                "ALTER SESSION set NLS_TERRITORY = 'SWEDEN'"

ALTER SESSION set NLS_LANGUAGE = 'SWEDISH'
ALTER SESSION set NLS_TERRITORY = 'SWEDEN'

I getting this exception:


java.rmi.RemoteException: For input string: ",7"

Apparently, Oracle thinks that the decimal separator is comma in Swedish. Is this correct?


Thanks


Peter

ChemAxon aa7c50abf8

20-12-2009 23:32:30

Hi Erik,


You ran into two separate bugs in JChem Cartridge: one is an internal number formatting error (raising ORA-29902) and the other is an internal reference to a non-existent Java stored procedure method (ORA-29531). Both bugs will be fixed in the next JChem version.


Thank you for reporting these problems and sorry for the inconvenience.


Peter

User 7bdb8e43f2

21-12-2009 08:18:57

Hi Peter,


Thank you for the update on this matter.


We have implemented a workaround for the time beeing. Good to hear the issue will be addressed in your next release.


Do you know if the solution will be to accept different NLS in the client or to inform at install-time of the limitation?


Thanks,


Erik

ChemAxon aa7c50abf8

21-12-2009 08:31:37

Hi Erik,


I improved two sections in JCC code to make them "NLS-aware": one section is specific to the particular use cases you reported, the other is on the execution path of many other use cases. Still, I have to test more extensively to see what (if anything) needs to be done for other use cases. I'll let you know what I find.


Peter

ChemAxon aa7c50abf8

23-12-2009 12:15:27

Hi Erik,


I made changes in a couple of other places in the code to make sure JCC could be used with locales having comma as the decimal separator. With the exception of one test, the tests in the JCC test suite now pass the using Swedish locales. The remaining problem is about parametrized similarity metrics (such as tversky). As of now, it seems that the fix of this last piece will not make it into the next release. I will let you know as soon as it has become clear when the localization fix for parametrized similarity metrics will be released.


Peter

ChemAxon aa7c50abf8

18-01-2010 08:58:56

JChem 5.3 has been released with most of the known locale-related problems solved. Locale-related problems with parametrized similarity metrics (such as tversky) will be solved in 5.3.1.

ChemAxon 990acf0dec

25-02-2010 18:22:44

Hi Erik,

I would like to inform you that we had to make an urgent patch release that was named 5.3.1, therefore the parametrized similarity metrics promised in this topic will be included only in the patch release coming at the end of March (probably named 5.3.2).

Best regards,

Akos

ChemAxon aa7c50abf8

19-04-2010 16:38:51

 one is an internal number formatting error (raising ORA-29902) and the other is an internal reference to a non-existent Java stored procedure method (ORA-29531)

JChem 5.3.2 has been released with these fixes.


Peter

User 7bdb8e43f2

20-04-2010 08:07:22

Thank's for the notification Peter.