In version 4.5.0 Oracle subagent is not getting loaded. Agent config file is as below:
SubAgent = oracle.nsm
[ORACLE]
ID = DB1
Name = TEST
Username = dbuser
Password = "mypass123"
2024.05.23 11:25:27.629 *I* [db.drv ] Database driver "sqlite.ddr" loaded and initialized successfully
2024.05.23 11:25:27.637 *I* [db.agent ] Local database opened successfully
2024.05.23 11:25:27.637 *I* [startup ] Agent ID is fe5c6553-04d2-4303-b702-f51d3befdbf2
2024.05.23 11:25:27.638 *I* [startup ] Local host name is "RAC1.kmrcl.in"
2024.05.23 11:25:27.638 *I* [startup ] Using system name "rac1"
2024.05.23 11:25:27.639 *I* [startup ] Arbitrary command execution disabled
2024.05.23 11:25:28.642 *I* [linux ] Unable to parse /proc/drbd, DRBD data collector will not start
2024.05.23 11:25:28.647 *I* [subagents ] Subagent "Linux" (/usr/local/lib/netxms/linux.nsm) loaded successfully (version 4.5.0)
2024.05.23 11:25:28.647 *E* [subagents ] Error loading subagent module "oracle.nsm" (/usr/local/lib/netxms/oracle.nsm: cannot open shared object file: No such file or directory)
2024.05.23 11:25:28.647 *E* [subagents ] Error loading subagent module "netsvc.nsm" (/usr/local/lib/netxms/netsvc.nsm: cannot open shared object file: No such file or directory)
There's no oracle.ddr in /usr/local/lib/netxms/dbdrv/ ; only sqlite.ddr is there.
In /usr/local/lib/netxms netsvc.nsm is also missing.
Please help.
Prefix /usr/local usually indicates that you built it from source. Run configure with additional "—with-oracle=/path/to/cliebt/library" and rebuild.
Same for netsvc, looks like you are missing libcurl
Thanks for the '--with-oracle' suggestion. It worked.
Now, Oracle.DBInfo.IsReachable(DB1) is coming NO
SubAgent = oracle.nsm
[ORACLE]
ID = DB1
Name = TEST
Username = dbuser
Password = "mypass123"
I also tried below config but that didn't work either.
Select
SubAgent = oracle.nsm
[ORACLE]
ID = DB1
TnsName = TEST
Username = dbuser
Password = "mypass123"
I gave full connection string as below. Also didn't work.
Select
SubAgent = oracle.nsm
[ORACLE]
ID = DB1
Name = dbuser@//localhost:1521/TEST
Username = dbuser
Password = "mypass123"
2024.05.28 15:16:46.285 *D* [comm.cs.1 ] Requesting metric "Oracle.DBInfo.IsReachable(DB1)"
2024.05.28 15:16:46.285 *D* [comm.cs.1 ] GetMetricValue("Oracle.DBInfo.IsReachable(DB1)"): 0 (SUCCESS) value = "NO"
2024.05.28 15:16:46.285 *D* [comm.cs.1 ] Outgoing message dump:
** 000000 | 00 1D 50 00 00 00 00 30 00 00 05 3E 00 00 00 02 | ..P....0...>....
** 000010 | 00 00 00 1C 00 00 00 00 00 00 00 00 00 00 00 00 | ................
** 000020 | 00 00 00 15 07 00 00 00 00 00 00 02 4E 4F 00 00 | ............NO..
** code=0x001D (CMD_REQUEST_COMPLETED) version=5 flags=0x0000 id=1342 size=48 numFields=2
** 000000: [ 28] INT32 0
** 000010: [ 21] UTF8-STRING "NO"
Is there any difference between the INI formats of 4.5.0 and 5.x ? Id or ID? TnsName or Name?
Can't find Administration Guide for old versions.
I am not big expert in oracle stuff, but here's config that works for me (we can now use just subagent name withou .nsm, but it does not change anything):
SubAgent = oracle
[ORACLE]
ID = DB1
Name = //10.10.1.1/orcl.office.companyname.com
Username = user
Password = password
On 6-th level of debug the following lines are in agent log:
2024.05.29 12:19:33.495 *D* [db.drv.oracle ] OCI version 19.9.0.0.0
2024.05.29 12:19:33.497 *D* [db.drv.oracle ] OCI statement caching is ENABLED
2024.05.29 12:19:33.497 *I* [db.drv ] Database driver "oracle.ddr" loaded and initialized successfully
2024.05.29 12:19:33.498 *D* [oracle ] ORACLE: poller thread for database oracle started
2024.05.29 12:19:33.498 *I* [subagents ] Subagent "ORACLE" (/opt/netxms-master/lib/netxms/oracle.nsm) loaded successfully (version 5.0.0-rc141)
2024.05.29 12:19:33.605 *D* [db.drv.oracle ] Connected to Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
2024.05.29 12:19:33.605 *D* [db.conn ] New DB connection opened: handle=0x7f083c08b100
2024.05.29 12:19:33.605 *D* [db.query ] DB Library: long running query threshold for session 0x7f083c08b100 set to 5000
2024.05.29 12:19:33.610 *I* [oracle ] Connection with database oracle restored (version 12.1, connection TTL 3600)
What it's saying for you in the line with db.drv.oracle tag?
It is working now with below config:
ID = DB1
Name = <IPADDRESS>:<PORT NUMBER>/<SERVICE NAME>
Username = dbuser
Password = mypass123