Splunk AppDynamics

Create Oracle Database via REST

Josh_Fox
Engager

Hello,

I am trying to create an Oracle database collector with the REST API. I don't seem to be able to get it working. The example online is of a SQL server, so I was hoping someone could please provide an example of an Oracle server JSON payload. Below is what I get if I do a GET. Also, our controller version is 4.5, so not sure if maybe that is part of the problem. The error I get is just a generic 500 Internal Server Error.

{
"id": 42,
"version": 0,
"name": "Oracle-OLTP",
"nameUnique": true,
"builtIn": false,
"createdBy": null,
"createdOn": 1531336844000,
"modifiedBy": null,
"modifiedOn": 1531336844000,
"type": "ORACLE",
"hostname": "Oracle-OLTP.domain",
"useWindowsAuth": false,
"username": "USER",
"password": "appdynamics_redacted_password",
"port": 1521,
"loggingEnabled": true,
"enabled": true,
"excludedSchemas": [
""
],
"jdbcConnectionProperties": [],
"databaseName": null,
"failoverPartner": null,
"connectAsSysdba": false,
"useServiceName": true,
"sid": "SRVC",
"customConnectionString": null,
"enterpriseDB": false,
"useSSL": false,
"enableOSMonitor": false,
"hostOS": null,
"useLocalWMI": false,
"hostDomain": null,
"hostUsername": null,
"hostPassword": "",
"dbInstanceIdentifier": null,
"region": null,
"certificateAuth": false,
"removeLiterals": true,
"sshPort": 0,
"agentName": "Default Database Agent",
"dbCyberArkEnabled": false,
"dbCyberArkApplication": null,
"dbCyberArkSafe": null,
"dbCyberArkFolder": null,
"dbCyberArkObject": null,
"hwCyberArkEnabled": false,
"hwCyberArkApplication": null,
"hwCyberArkSafe": null,
"hwCyberArkFolder": null,
"hwCyberArkObject": null,
"orapkiSslEnabled": false,
"orasslClientAuthEnabled": false,
"orasslTruststoreLoc": null,
"orasslTruststoreType": null,
"orasslTruststorePassword": "",
"orasslKeystoreLoc": null,
"orasslKeystoreType": null,
"orasslKeystorePassword": "",
"ldapEnabled": false,
"customMetrics": null,
"subConfigs": [],
"jmxPort": 0
}
Labels (1)
0 Karma
1 Solution

Josh_Fox
Engager

Hello, thanks for the response, this is super helpful. I got this working with some help. Here is the working JSON payload:

{
"type": "ORACLE",
"agentName": "Default Database Agent",
"name": "MYTest",
"hostname": "MYTest.domain",
"enterpriseDB": false,
"failoverPartner": null,
"port": 1521,
"customConnectionString": null,
"useServiceName": true,
"sid": "SRVCID",
"connectAsSysdba": false,
"username": "USER",
"password": "password",
"loggingEnabled": true,
"enableOSMonitor": false,
"hostOS": null,
"useLocalWMI": false,
"hostDomain": null,
"sshPort": 0,
"certificateAuth": false,
"hostUsername": null,
"hostPassword": ""
}
 
Hope this saves the next person some time. The 'type' field has to be all caps. I believe these are all the required fields but not absolutely sure on this.

View solution in original post

Hiroki_Ito
Contributor
Hi @Josh.Fox ,

Thank you for posting to the community.

Although some keys such as id, version, createdOn and modifiedOn are unnecessary, The JSON you posted may be able to create Oracle database collector with the REST API, because it worked with version 4.5.17.

Could you confirm if you are using a curl command like below?
curl -X POST --user {username}@{account_name}:{password} "{Controller_URL}/controller/rest/databases/collectors/create" -H"Accept: application/json" -H"Content-type: application/json" -d @{PATH_TO_JSON_FILE}

In addition, could you please share what is shown in the controller's log located at <controller_home>/logs/server.log
after executing the API and get 500 Internal Server Error?
The log can be searched by "Exception Id" returned by the API
 
e.g.
  • API Response
<html><body><h1>500 Internal Server Error</h1><br/>Exception Id:d9aeaa41-ce82-4965-a4f1-211b17235ee5<br/></body></html>

  • server.log
[#|2021-07-02T04:37:51.653+0000|SEVERE|glassfish 4.1|com.singularity.ee.controller.servlet.handlers.aa|_ThreadID=49;_ThreadName=http-listener-1(4);_TimeMillis=1625200671653;_LevelValue=1000;|500 Error with Exception Id: d9aeaa41-ce82-4965-a4f1-211b17235ee5 and Class Name: java.lang.NullPointerException
java.lang.NullPointerException
...

Best Regards,
Hiroki
0 Karma

Josh_Fox
Engager

Hello, thanks for the response, this is super helpful. I got this working with some help. Here is the working JSON payload:

{
"type": "ORACLE",
"agentName": "Default Database Agent",
"name": "MYTest",
"hostname": "MYTest.domain",
"enterpriseDB": false,
"failoverPartner": null,
"port": 1521,
"customConnectionString": null,
"useServiceName": true,
"sid": "SRVCID",
"connectAsSysdba": false,
"username": "USER",
"password": "password",
"loggingEnabled": true,
"enableOSMonitor": false,
"hostOS": null,
"useLocalWMI": false,
"hostDomain": null,
"sshPort": 0,
"certificateAuth": false,
"hostUsername": null,
"hostPassword": ""
}
 
Hope this saves the next person some time. The 'type' field has to be all caps. I believe these are all the required fields but not absolutely sure on this.
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Improve Delivery Assurance with S2S ACK for Edge Processor

Edge Processor helps Splunk customers process data closer to the source: filtering, transforming, masking, and ...

.conf26 Platform Sessions: Turn Machine Data into Agentic Action

As autonomous agents and multi-cloud architectures reshape modern IT, data platforms have to do far more than ...

Introducing the Launch of Edge Processor in Hybrid Mode!

Modernize Data Ingestion Without Starting Over  For years, organizations have relied on Splunk's proven ...