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
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
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