Cartridge test.sh fails with Java Exception

User ba4374b8a0

25-04-2008 18:15:40

SQL> select jchem_core_pkg.getenvironment() from dual


*


ERROR at line 1:


ORA-29532: Java call terminated by uncaught Java exception:


java.lang.NullPointerException


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


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





I am currently running Oracle 10.2.0, and have the cartridge installed without any errors that I could see. When I run test.sh, the above error is what I get.





Any help would be appreciated,





Brian Jackson


Celgene Pharmaceuticals

ChemAxon aa7c50abf8

26-04-2008 08:38:51

Brian,





Please, could you tell me which JChem version it is?





The corresponding Java stack trace from the Oracle session trace would also be helpful.





Thanks


Peter

User ba4374b8a0

28-04-2008 14:44:37

jchem.version=5.0.2.1


jchem.veruln=5_0_02_1


# include only numeric characters (and dots)


# give this property if version id incluses alphabetic characters


jchem.vernum=5.0.02.1


# this property can not contain extra 0 digits


# use "_" character as digit separator since installer convert


# jchem.vernum to this format


jchem.install.vernum=5_0_2_1


jchem.date=2008.03.20


jchem.table.version=109


marvin.package=marvin-all-5_0_02_1.zip.





Oracle/Java Stack Trace? where would I find that?





-Brian

ChemAxon aa7c50abf8

28-04-2008 15:04:34

The Oracle session trace files are usually in the $ORACLE_BASE/admin/<database-instance-name>/udump directory. One of the files in there will contain a Java stack trace with NullPointerException.





Is this a new JChem Cartridge installation or is it an upgrade from a previous version?





Thanks


Peter

User ba4374b8a0

28-04-2008 15:11:33

This is a brand new installation, and here is the .trc for the current process I tried to run this morning.





/u01/app/oracle/admin/axon/udump/axon_ora_8665.trc


Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production


With the Partitioning, OLAP and Data Mining options


ORACLE_HOME = /u01/app/oracle/product/10.2.0/axon


System name: Linux


Node name: Seurat_Oracle.sdcelgene.celgene.com


Release: 2.6.9-67.0.7.ELsmp


Version: #1 SMP Wed Feb 27 04:47:23 EST 2008


Machine: x86_64


Instance name: axon


Redo thread mounted by this instance: 1


Oracle process number: 17


Unix process pid: 8665, image: oracleaxon _at_ Seurat_Oracle.sdcelgene.celgene.com





*** ACTION NAME:() 2008-04-28 07:57:15.535


*** MODULE NAME:(SQL*Plus) 2008-04-28 07:57:15.535


*** SERVICE NAME:(axon) 2008-04-28 07:57:15.535


*** SESSION ID:(145.4785) 2008-04-28 07:57:15.535


java.lang.NullPointerException


at chemaxon.jchem.cartridge.rmi.client.RmiServerDesc.<init>(RmiServerDes


c.java:21)


at chemaxon.jchem.cartridge.rmi.client.RmiDirectory.getRmiServerDesc(Rmi


Directory.java:98)


at chemaxon.jchem.cartridge.rmi.client.RmiDirectory.locate(RmiDirectory.


java:48)


at chemaxon.jchem.cartridge.JFunctions.getEnvironment(JFunctions.java:19


7)


~


~





Thanks,





Brian Jackson

ChemAxon aa7c50abf8

28-04-2008 15:32:30

Do you run the test.sh script using the same database user as you did with the install.sh script?





Thanks


Peter

User ba4374b8a0

28-04-2008 15:35:00

Basically I created a dbuser jchem/jchem. Then, I run the script as follows...





root@host>./test.sh jchem/jchem@axon





Followed by the error above, and the .trc above.





-Brian

ChemAxon aa7c50abf8

28-04-2008 16:02:18

Did you use the same jchem user for step#10 in Installing JChem Data Cartridge on Oracle (http://www.chemaxon.com/jchem/doc/admin/cartridge.html#icart) (for the install.sh script)?





Thanks,


Peter

User ba4374b8a0

28-04-2008 16:47:33

Yes,





as follows;





install.sh jchem/jchem@axon 172.16.52.113:1099

ChemAxon aa7c50abf8

28-04-2008 18:40:51

It appears as if the install.sh script had failed to register the RMI address 172.16.52.113:1099 in the table jchem.jc_idx_property under the rmi.server.1 key. Please, could you check the jchem.jc_idx_property table to see if this entry is really missing?





Thanks


Peter

User ba4374b8a0

28-04-2008 22:19:55

There are no tables in the jchem Schema after the Cartridge install.





Also, I do get an error in the install.sh below...





No errors.


Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64


bit Production


With the Partitioning, OLAP and Data Mining options


+ echo 'Create the SQL script used to register the JChem service URLs'


Create the SQL script used to register the JChem service URLs


+ /u01/app/oracle/product/10.2.0/axon/jre/1.4.2//bin/java -cp ../lib/jchem.jar:/


u01/app/oracle/product/10.2.0/axon/jdbc/lib/ojdbc14.jar chemaxon.jchem.cartridge


.install.ChUrl register-urls jchem/jchem@axon 172.16.52.113:1099


java.lang.Exception: Could not connect to JChemServer at host 172.16.52.113 and


port 1099: Connection refused


at chemaxon.jchem.cartridge.install.ChUrl.checkEndPoint(ChUrl.java:124)


at chemaxon.jchem.cartridge.install.ChUrl.getServiceEndPoints(ChUrl.java


:63)


at chemaxon.jchem.cartridge.install.ChUrl.main(ChUrl.java:182)


+ exit 1








Here is how I got here.....





SQL>


Create user jchem identified by jchem;


grant resource,connect to jchem;





JChem Server:


Connect to Oracle DB using jchem/jchem and the jdbc driver create jchem schema(y) which then creates the properties table.





Oracle/Cartridge Server:





./install.sh jchem/jchem@axon 172.16.52.113:1099





Which is then followed by the error above,





Any ideas?





-Brian Jackson

ChemAxon aa7c50abf8

28-04-2008 22:32:53

Brian,





I assume you've followed the installation instructions (http://www.chemaxon.com/jchem/doc/admin/cartridge.html#install) and step#10 has failed, correct?





Are JChem Server and Oracle running on different machines?





Have you started JChem Server (http://www.chemaxon.com/jchem/doc/admin/cartridge.html#server_starting) before running the install.sh script?





Thanks


Peter

User ba4374b8a0

28-04-2008 22:43:11

I followed the steps, 1-10, and, did try with the server.sh start command run.





Same error.





JChem, and the Cartridge are running on seperate machines,





JChem - 172.16.52.113





Oracle/Cartridge - 172.16.52.114





I know the IP addresses dont mean anything to you, but those are the two physical boxes I am running.





-Brian

ChemAxon aa7c50abf8

28-04-2008 22:51:38

Please, can you post the output of the server.sh start command?





Thanks


Peter

User ba4374b8a0

29-04-2008 14:31:19

[oracle@Seurat_Oracle cartridge]$ ./server.sh start &


[2] 15254


[oracle@Seurat_Oracle cartridge]$ + /u01/app/oracle/product/10.2.0/axon/jre/1.4.


2//bin/java -server -Xmx700m -Djava.util.logging.config.class=chemaxon.jchem.car


tridge.util.LoggingConfigurator -Dchemaxon.jchem.cartridge.config.file=conf/jcar


t.properties -Djava.awt.headless=true -classpath ./../lib/jchem.jar:/u01/app/ora


cle/product/10.2.0/axon/jdbc/lib/ojdbc14.jar: chemaxon.jchem.cartridge.rmi.impl.


AdminImpl start


Address already in use


java.net.BindException: Address already in use


at java.net.PlainSocketImpl.socketBind(Native Method)


at java.net.PlainSocketImpl.bind(Unknown Source)


at java.net.ServerSocket.bind(Unknown Source)


at java.net.ServerSocket.<init>(Unknown Source)


at java.net.ServerSocket.<init>(Unknown Source)


at chemaxon.jchem.cluster.NodeManager.run(NodeManager.java:66)


+ set +x

ChemAxon aa7c50abf8

29-04-2008 16:53:58

Something is blocking port 1099. You can use, e.g., the lsof Linux utility to find out what. If it is another JChemServer instance, shut it down. If it is something else which you need, specify a different port for JChem Server.

User ba4374b8a0

29-04-2008 17:23:50

I am running the JChem server on a Windows box, not the local machine where Oracle and the Cartridge is running on.





Here is what I am doing.... Step by Step.





1) Installed JCHEM on the Windows SErver.


2) setup the ojdbc to connect to the Oracle Server


3) Create the JCHEM user in Oracle, with the resource, connect, and JavaSocket Permissions.


4) Connect the JCHEM manager on the windows box to the Oracle DB setting up the Jchem.Properties Table.


5) On the Oracle machine, am running server.sh


6) On the Oracle machine, running the install.sh jchem/jchem@axon <jchemserver:1099>


7) Error occurs on install


8) Test.sh fails.





Can you see a problem with that series of events?





-Brian

User ba4374b8a0

30-04-2008 14:57:03

I completely uninstalled the cartridge, jchem user, and the JChem application from the Windows 2003 server.





Reinstalled each, and still come up with the same error. Do I have to have any tables, structures in the Oracle DB before I install the cartridge?





After the Cartridge install, I only have one table called (sp) Java$Blob$Create$Tables. I am not sure what the problem is.





Any other advice?





-Brian

ChemAxon aa7c50abf8

30-04-2008 15:46:15

Brian,
Quote:
Here is what I am doing.... Step by Step.





1) Installed JCHEM on the Windows SErver.


2) setup the ojdbc to connect to the Oracle Server


3) Create the JCHEM user in Oracle, with the resource, connect, and JavaSocket Permissions.


4) Connect the JCHEM manager on the windows box to the Oracle DB setting up the Jchem.Properties Table.


5) On the Oracle machine, am running server.sh


6) On the Oracle machine, running the install.sh jchem/jchem@axon <jchemserver:1099>


7) Error occurs on install


8) Test.sh fails.





Can you see a problem with that series of events?
Have you followed the instructions in the section "How to setup JChem Server and Oracle on two different hosts?" (http://www.chemaxon.com/jchem/doc/admin/cartridge.html#twohosts_setup)? You have to modify the cartridge/conf/jcart.properties file according to this section before you proceed to starting the JChem Server (before your step#5).





I am not sure what is the purpose of your step#4. Do you have, perhaps, an "old-style" license file (licenses.dat)?





On a Windows Server, I suggest to use server.bat instead of server.sh for starting the JChem Server. Did server.sh (server.bat) report no errors? In an earlier post, you wrote that server.sh reported "Address already in use".





In your step#6, you should remove the brackets. The command should read:


Code:
install.sh jchem/jchem@axon jchemserver:1099



instead of


Code:
install.sh jchem/jchem@axon <jchemserver:1099>






Does install.sh reports the same error as before. i.e:
Quote:
java.lang.Exception: Could not connect to JChemServer at host 172.16.52.113 and


port 1099: Connection refused
?
Quote:
Do I have to have any tables, structures in the Oracle DB before I install the cartridge?
No, you don't.
Quote:
After the Cartridge install, I only have one table called (sp) Java$Blob$Create$Tables.
This indicates that the install.sh script didn't complete successfully.





Thanks


Peter

User ba4374b8a0

30-04-2008 16:27:54

#Cartridge Configuration





#jchem.server.host=localhost





jchem.server.port=1099





oracle.server.host=172.16.52.114





oracle.server.port=1521





oracle.server.instance=axon





# oracle.server.login=





# oracle.server.password=





# license.dir = licenses





logging.config.file = conf/logging.properties


logging.output.dir = logs


reservedMemory=64





# remote.admin.allowed=false





# indexingThreadsPerCall=?





# jcSearchThreadsPerCall=?





# jcReactThreadsPerCall=?





## connection.cached.pool.impl=chx.jchem.cartridge.util.cpools.CommonsDataSource





### url=jdbc\:oracle\:thin\:@localhost\:1521\:mydb


### driver=oracle.jdbc.driver.OracleDriver





This is my jcart.properties from the Windows JCHEM server. Is this correct? Also, when I run server.bat start from this machine, I recieve a message that ORACLE_HOME is not set. But, there is no Oracle Home. Do I need the full Oracle client?

ChemAxon aa7c50abf8

30-04-2008 17:31:04

No Oracle client installation is required on the JChem Server host. Only the ojdbc14.jar file is required. If only the ojdbc14.jar file is available to the JChem Server, the ORACLE_JDBC_DRIVER enviroment variable has to be set (http://www.chemaxon.com/jchem/doc/admin/cartridge.html#server_oracle_jdbc_path), like:


Code:
SET ORACLE_JDBC_DRIVER=C:\chemaxon\oem_libs\ojdbc14.jar






Have you set the ORACLE_JDBC_DRIVER enviroment variable?





BTW, the error message you receive, is it not this one:
Quote:
Neither ORACLE_JDBC_DRIVER nor ORACLE_HOME is set
?





Peter

User ba4374b8a0

30-04-2008 17:58:58

The missing piece for me......





Server.bat vs. Server.sh and on which box.





I was running the JChemManager and assuming that the JChem server was running, which, of course it was not. Then, after your post about starting Server.sh, I was of course doing that on the Oracle Linux box, which is not the JChem server.





So, I now have the JChem server running on the correct box, and the install.sh jchem/jchem@axon JChemServer:1099 install went smoothly without error. My DBA is creating the indexes now and the test.sh returned the proper information based on your documentation.





Thank you for you help and patience,





Brian K. Jackson


Network Administrator


Celgene Pharmaceuticals