New Installation of JCHEM Cartridge on 64 bit Linux machine

User 325f2762fd

21-04-2008 10:52:40

Hi,


Could you please let me know if you have different software for 64 bit Linux machine. And also I could not find any patch 4655283 for 64 bit Linux.


Will it be ok to install


1) Oracle 10g Release 2 (10.2.0.1.0) from Companion CD for Linux 64 bit


2) No patch found


3) Upgrade to patch set 10.2.0.3





Thanks


Rajeev

User 325f2762fd

21-04-2008 10:58:53

And also would it be ok to install Java SE Development Kit (JDK) 6 for JCHEM cartridge installation.

ChemAxon aa7c50abf8

21-04-2008 15:28:36

Quote:
And also I could not find any patch 4655283 for 64 bit Linux.
I've just realized that this patch is available starting with 10.2.0.2





If Oracle will also be freshly installed, I recommend to go straight for 10.2.0.3:





1. Install Oracle 10.2.0.1 without any database instance


2. Install Oracle 10.2.0.3


3. Create a database instance





10.2.0.3 should include patch 4655283 and there will be no need for the Companion CD either.
Quote:
And also would it be ok to install Java SE Development Kit (JDK) 6 for JCHEM cartridge installation.
Yes, that should be OK.





Peter

User 325f2762fd

21-04-2008 15:31:42

Thanks. I will let you know how it goes

User 325f2762fd

23-04-2008 09:22:47

We have succefully implemented the JCHEM 5 cartridge on the new box Linux 5 64 bit and it seems to be faster.





I have got following query for you.





1) how to automate JChem server start and stop in Linux machine and also if we start Jchem server manually it waits for indefinitely (daemon) and does not come back with unix prompt why?





2) The password of jchem owner in jcart.properties is visible why? How we protect this and could this be encrypted in the file.





3) We have script/job which gathers stats of all the schema using dbms_stats. So for jchem cartridge will it be ok if we run our script on JCHEM and the schema where structures resides?

User 325f2762fd

23-04-2008 10:38:08

Another issue on upgrade to JCHEM 5.0





We are getting this issue when we try to build jchem index on a user which is jchem enabled (necessary privileges are granted as we donot want to use jchem_core_pkg.use_password ) and also java permission had been given to the port 1099 for this user.





(JAVA.net.SocketPermission 127.0.0.1:15972 CONNECT,RESOLVE) has NOT been granted TO CCDIII. THE PL/SQL TO GRANT this IS dbms_java.grant_permission( 'CCDIII', 'SYS:java.net.SocketPermission', '127.0.0.1:15972', 'connect,resolve' )


ORA-06512: AT "JCHEM.JCHEM_CORE_PKG", line 26


ORA-06512: AT "JCHEM.JCHEM_CORE_PKG", line 80





In the document it says the default port is 1099 where it is now asking a different port ie 15972.

User 325f2762fd

23-04-2008 13:21:27

Another issue:


We are getting license issue when we user jc_react. The license file we have got is the one prior to JCHEM 5.0 and it is kept in /home/oracle/.chamxon directory.




SELECT JC_React('[N;+1:1]([H])>>[N:1]', 'c1ccccc1', 'sep=.. method:a..outFormat:cxsmiles') AS PRODUCT


FROM dual




ORA-29532: Java call terminated by uncaught Java exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:


java.rmi.RemoteException: java.lang.Exception: chemaxon.license.LicenseException: No valid license has been found.


Product name: Reactor


Please contact sales _at_ chemaxon.com to obtain the corresponding license.


Students and academic researchers are entitled of free use


through our Academic Package, for more information


please visit: http://www.chemaxon.com/acp

User 325f2762fd

23-04-2008 13:26:34

Every time we restart jchem server


we get the following error and it seems we need to grant java socket permission on different port each time.





ORA-29532: Java call terminated by uncaught Java exception: java.lang.Exception: Problem connecting to JChemServer: rmi://localhost:1099: the Permission (java.net.SocketPermission 127.0.0.1:39499 connect,resolve) has not been granted to CCDIII. The PL/SQL to grant this is dbms_java.grant_permission( 'CCDIII', 'SYS:java.net.SocketPermission', '127.0.0.1:39499', 'connect,resolve' )


ORA-06512: at "JCHEM.JCHEM_CORE_PKG", line 343


ORA-06512: at "JCHEM.REACT_FUNC", line 11

ChemAxon aa7c50abf8

23-04-2008 13:40:19










Quote:
1) how to automate JChem server start and stop in Linux machine and also if we start Jchem server manually it waits for indefinitely (daemon) and does not come back with unix prompt why?




2) The password of jchem owner in jcart.properties is visible why? How we protect this and could this be encrypted in the file.

This password feature is not very useful -- I have to admit. I suggest to leave in place the default administrative access restriction for JChem Server (i.e. not to accept remote administrative calls) and not to use/set a password. This way you can basically protect the JChem Server configuration on the filesystem level -- by setting the configuration files' access permissions.




(BTW, the password is supposed to be encrypted. If it is not, then it is bug.)




The best way to automatically start and stop the server on a Linux machine is to use the System V style run level management facility: creating a script in /etc/init.d/ and creating the necessary symbolic links in the /etc/rcX.d directories (eventually using chkconfig, update-rc.d or similar configuration tool depending on your distribution).



With recent JChem versions (starting with JChem 5.2) a simple script does the job:


case "$1" in
start|stop)
    su - _jcc -c "cd /data/jcc/jchem/jchem-5.8.1/cartridge; bash
server.sh $1 >std.log 2>err.log"
    ;;
*)
    echo "Unsupported command $1";
exit 1;
esac


With earlier versions a combination of two files was necessary. The core part of the start-stop script would look something like:














Code:
start)


    su - jchem -c '/opt/chemaxon/5.0.2.1/jchem/cartridge/server_ctrl.sh start'


    ;;


stop)


    su - jchem -c '/opt/chemaxon/5.0.2.1/jchem/cartridge/server_ctrl.sh stop'


    ;;






where server_ctrl.sh is a convenience shell script having the only purpose to set site-specific variables such as the java heap size or the current working directory (this latter needs to be the directory where the server.sh script is located):














Code:
#########################


#     server_ctrl.sh    #


#########################


export JAVA_HEAP_SIZE=700m


JCART_SERVER_HOME=/opt/chemaxon/5.0.2.1/jchem/cartridge


cd "$JCART_SERVER_HOME"


bash ./server.sh $1 >"$1.log" 2>&1 &








Notice that this convenience shell script is also used to put the JCart server process into the background by terminating the last line with an ampersand.











Quote:
In the document it says the default port is 1099 where it is now asking a different port ie 15972.

JChem Server opens multiple ports. There is one "entry port" which JChem Cartridge's Oracle-resident part uses to contact JChem Server (and obtain the address for the other ports). This "entry port" has the default value of 1099. If you look at the installation docs (http://www.chemaxon.com/jchem/doc/admin/cartridge.html#icart), you can see that starting with JChem 5.0, the required socket permissions are not limited to a single port (there are no ports specified in these statements):












Code:



call dbms_java.grant_permission( 'JCHEM', 'SYS:java.net.SocketPermission', '127.0.0.1', 'resolve' )


call dbms_java.grant_permission( 'JCHEM', 'SYS:java.net.SocketPermission', '127.0.0.1', 'connect,resolve' )






Thanks


Peter

ChemAxon aa7c50abf8

23-04-2008 14:08:04

Quote:
it seems we need to grant java socket permission on different port each time.
Don't specify the port and the grant will apply to any ports. (Please, also see my previous post.)
Quote:
We are getting license issue when we user jc_react. The license file we have got is the one prior to JCHEM 5.0 and it is kept in /home/oracle/.chamxon directory.


With "old" license files (licenses.dat) the scheme is the same as with pre-5.0 JChem versions, just replace Tomcat with JChem Server (server.sh). If the user tomcat used to start Tomcat with your JChem 3.2.6 cartridge installation and his home directory was /home/tomcat, then the licenses.dat file had to be stored in /home/tomcat/.chemaxon/ . If you now start JChem Server as I described in my previous post:





su - jchem -c '/opt/chemaxon/5.0.2.1/jchem/cartridge/server_ctrl.sh start'





one option is to replace jchem with tomcat in the above command and leave the licenses.dat file in its old location. Alternatively, you can leave the above command as is (have jchem start JChem Server) and move the licenses.dat file to /home/jchem/.chemaxon/ -- assuming that the user jchem has his home directory in /home/jchem.





A third option is to request a new-style license file from sales at chemaxon.com and drop it into the cartridge/licenses directory.





Thanks


Peter

User 325f2762fd

23-04-2008 15:08:05

This is a new installation where we copied the old license file from another server to the new server under /home/oracle/.chemaxon. Tomat server in the old machine was started as oracle user.





I have followed the procedure but still getting same error. The error in jchem server is the following





Product name: Reactor


Please contact sales _at_ chemaxon.com to obtain the corresponding license.


Students and academic researchers are entitled of free use


through our Academic Package, for more information


please visit: http://www.chemaxon.com/acpack_conditions.html


at chemaxon.license.LicenseHandler.checkLicense(LicenseHandler.java:691)


at chemaxon.reaction.Reactor.checkLicense(Reactor.java:2352)


at chemaxon.reaction.Reactor.react(Reactor.java:1674)


at chemaxon.jchem.cartridge.servlets.react.InteropReactor.reactDefault(InteropReactor.java:80)


at chemaxon.jchem.cartridge.servlets.react.InteropReactor.react(InteropReactor.java:51)


at chemaxon.jchem.cartridge.servlets.react.JCartReactor$ReactProcessor.run0(JCartReactor.java:346)


at chemaxon.jchem.cartridge.servlets.react.JCartReactor$ReactProcessor.call(JCartReactor.java:325)


... 6 more


Apr 23, 2008 3:59:08 PM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.rmi.RemoteException: java.lang.Exception: chemaxon.license.LicenseException: No valid license has been found.


Product name: Reactor


Please contact sales _at_ chemaxon.com to obtain the corresponding license.


Students and academic researchers are entitled of free use


through our Academic Package, for more information


please visit: http://www.chemaxon.com/acpack_conditions.html


at chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil.handleError(RmiImplUtil.java:48)


at chemaxon.jchem.cartridge.rmi.impl.ReactProductsImpl.getNextProducts(ReactProductsImpl.java:77)


at chemaxon.jchem.cartridge.rmi.impl.JcReactImpl.reactSimple(JcReactImpl.java:51)


at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)


at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)


at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)


at java.lang.reflect.Method.invoke(Method.java:597)


at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)


at sun.rmi.transport.Transport$1.run(Transport.java:159)


at java.security.AccessController.doPrivileged(Native Method)


at sun.rmi.transport.Transport.serviceCall(Transport.java:155)


at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)


at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)


at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)


at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)


at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)


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

User 325f2762fd

23-04-2008 16:20:20

We have resolved the problem by deploying the new license file ie license.cxl


Thanks