Difference between revisions of "Unable to determine the database engine"

(Added example & Troubleshooting.)
 
m (Added section about CMOD directory permissions.)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TOCright}}
== What was the error? ==
== What was the error? ==


Message Number: 4013
Message Number: 4013


Message Severity: Error
Message Severity: Error (Corrective action is required to continue)


Message Name:  ARS4013E
Message Name:  ARS4013E
Line 13: Line 15:
== Example ==
== Example ==


<code>
  $ arsdb -u -I PROD
$ arsdb -u -I PROD
  arsdb:  ARS4013E Unable to determine the database engine
arsdb:  ARS4013E Unable to determine the database engine
</code>


== Troubleshooting ==
== Troubleshooting ==


It's not very clear which of the parameters in the ars.ini file are to be used for what purpose.
If you're not installing CMOD as the server's 'root' or 'admin' account, ensure that you have the proper permissions to access the configuration files, and any intermediate directories.  You may need to change the ownership and permissions of the CMOD installation directory or configuration files to match the ID that you intend to run the Content Manager OnDemand daemon [[arssockd]] as.
 
  $ ls -l
  drwxr-xr-x.  3 archive archive  4096 May 11 21:41 bin
  drw-r--r--.  2 archive archive  4096 May 23 23:59 config
  drwxr-xr-x.  2 archive archive    25 May 11 21:41 dd
  drwxr-xr-x.  7 archive archive    70 May 11 21:41 exits
The archive user can't traverse into the 'config' directory -- it's missing the execute privilege!
  $ chmod 755 config
  $ ls -l
  drwxr-xr-x.  3 archive archive  4096 May 11 21:41 bin
  drwxr-xr-x.  2 archive archive  4096 May 23 23:59 config
  drwxr-xr-x.  2 archive archive    25 May 11 21:41 dd
  drwxr-xr-x.  7 archive archive    70 May 11 21:41 exits
Permissions now allow the 'archive' user to access the contents of the 'config' directory.
 
Check to see that your [[ars.ini]] configuration parameters are correct and up to date.  On some platforms, the values (especially User ID's) are case-sensitive, so you may need to use "archive" instead of "ARCHIVE".
 
Ensure that the ARS_DB_ENGINE parameter in the ars.cfg file is one of the three following values:  DB2, ORACLE, MSSQL. 
 
If you have a non-default CMOD instance name ("archive") then you **MUST** use the -I parameter with the correct IBM Content Manager OnDemand instance name.
 
See the [[ars.cfg]] article for more information on the parameters in the [[ars.cfg|IBM CMOD Configuration file]] to make sure you're using the appropriate IBM Content Manager OnDemand configuration parameters.
 
Check to see that you have DB2 connectivity from the IBM CMOD instance owner account, and permission to access the tables:
 
  # Can I run db2 and see the database directory?
  $ db2 list database directory
  System Database Directory
  Number of entries in the directory = 1
  Database 1 entry:
  Database alias                      = ARCHIVE
  Database name                        = ARCHIVE
  Local database directory            = /arsdb/SMS
  Database release level              = 10.00
  Comment                              =
 
  # Do I have permission to connect to the database?
  $ db2 connect to BNC
  Database Connection Information
  Database server        = DB2/LINUXX8664 10.5.8
  SQL authorization ID  = ARCHIVE
  Local database alias  = ARCHIVE
 
If you're not able to see or connect to DB2, make sure you have the correct group membership (sysadm1 if your IBM CMOD installation was by-the-book), and check to make sure that the appropriate db2 links have been created with the <code> db2ln </code> command.  You will need administrative or root access to perform this task.
 
Also check to see that you have the correct environment variables, with the <code> set</code> or <code> setenv</code> commands, depending on your command shell:
 
  $ set
  DATABASE=ARCHIVE
  DB2DIR=/opt/ibm/db2/V10.5
  DB2INSTANCE=archive
  DB2LIB=/home/archive/sqllib/lib
  DB2_HOME=/home/archive/sqllib
  DB2_NET_CLIENT_PATH=
  HOSTNAME=OnDemand.example.com
  HOSTTYPE=x86_64
  IBM_DB_DIR=/home/archive/sqllib
  IBM_DB_HOME=/home/archive/sqllib
  IBM_DB_INCLUDE=/home/archive/sqllib/include
  IBM_DB_LIB=/home/archive/sqllib/lib
 
If you don't have these values, you will need to find the <code> db2profile</code> script and execute it to set these variables -- it can be found inside the 'sqllib' directory of the database owner's home directory.
 
Finally, IBM CMOD updates have been known to have problems co-existing with prior versions of Content Manager OnDemand being installed at the same time.  Removing old Content Manager OnDemand versions before configuring your newly-installed instance with the <code> uninstallod</code> command may help eliminate this error. Make sure to back up your configuration files first!


<code>
If these items didn't help, See the IBM Documentation on ARS0013E: [https://www.ibm.com/support/knowledgecenter/en/SSEPCD_9.5.0/com.ibm.ondemand.messages.doc/dodm4013.htm v9.5] &nbsp; [https://www.ibm.com/support/knowledgecenter/en/SSEPCD_10.1.0/com.ibm.ondemand.messages.doc/dodm4013.htm v10.1]
[@SRV@_ARCHIVE]               <=- CMOD Instance Name to be used with arsdb, arsmaint and arssockd.
HOST=
PROTOCOL=2
PORT=0
SRVR_INSTANCE=ARCHIVE        <=- The name of the DB2/Oracle database that CMOD stores index data in.
SRVR_INSTANCE_OWNER=odadminp  <=- The User name of the UNIX account that runs arssockd & owns database tables.
</code>

Latest revision as of 04:14, 24 May 2020

What was the error?

Message Number: 4013

Message Severity: Error (Corrective action is required to continue)

Message Name: ARS4013E

What were you doing?

Probably trying to run arsdb or arssockd with the -I parameter.

Example

 $ arsdb -u -I PROD
 arsdb:  ARS4013E Unable to determine the database engine

Troubleshooting

If you're not installing CMOD as the server's 'root' or 'admin' account, ensure that you have the proper permissions to access the configuration files, and any intermediate directories. You may need to change the ownership and permissions of the CMOD installation directory or configuration files to match the ID that you intend to run the Content Manager OnDemand daemon arssockd as.

 $ ls -l 
 drwxr-xr-x.  3 archive archive  4096 May 11 21:41 bin
 drw-r--r--.  2 archive archive  4096 May 23 23:59 config
 drwxr-xr-x.  2 archive archive    25 May 11 21:41 dd
 drwxr-xr-x.  7 archive archive    70 May 11 21:41 exits

The archive user can't traverse into the 'config' directory -- it's missing the execute privilege!

 $ chmod 755 config
 $ ls -l 
 drwxr-xr-x.  3 archive archive  4096 May 11 21:41 bin
 drwxr-xr-x.  2 archive archive  4096 May 23 23:59 config
 drwxr-xr-x.  2 archive archive    25 May 11 21:41 dd
 drwxr-xr-x.  7 archive archive    70 May 11 21:41 exits

Permissions now allow the 'archive' user to access the contents of the 'config' directory.

Check to see that your ars.ini configuration parameters are correct and up to date. On some platforms, the values (especially User ID's) are case-sensitive, so you may need to use "archive" instead of "ARCHIVE".

Ensure that the ARS_DB_ENGINE parameter in the ars.cfg file is one of the three following values: DB2, ORACLE, MSSQL.

If you have a non-default CMOD instance name ("archive") then you **MUST** use the -I parameter with the correct IBM Content Manager OnDemand instance name.

See the ars.cfg article for more information on the parameters in the IBM CMOD Configuration file to make sure you're using the appropriate IBM Content Manager OnDemand configuration parameters.

Check to see that you have DB2 connectivity from the IBM CMOD instance owner account, and permission to access the tables:

 # Can I run db2 and see the database directory?
 $ db2 list database directory
 System Database Directory
 Number of entries in the directory = 1
 Database 1 entry: 
 Database alias                       = ARCHIVE
 Database name                        = ARCHIVE
 Local database directory             = /arsdb/SMS
 Database release level               = 10.00
 Comment                              =
 # Do I have permission to connect to the database?
 $ db2 connect to BNC
  Database Connection Information
 Database server        = DB2/LINUXX8664 10.5.8
 SQL authorization ID   = ARCHIVE
 Local database alias   = ARCHIVE

If you're not able to see or connect to DB2, make sure you have the correct group membership (sysadm1 if your IBM CMOD installation was by-the-book), and check to make sure that the appropriate db2 links have been created with the db2ln command. You will need administrative or root access to perform this task.

Also check to see that you have the correct environment variables, with the set or setenv commands, depending on your command shell:

 $ set
 DATABASE=ARCHIVE
 DB2DIR=/opt/ibm/db2/V10.5
 DB2INSTANCE=archive
 DB2LIB=/home/archive/sqllib/lib
 DB2_HOME=/home/archive/sqllib
 DB2_NET_CLIENT_PATH=
 HOSTNAME=OnDemand.example.com
 HOSTTYPE=x86_64
 IBM_DB_DIR=/home/archive/sqllib
 IBM_DB_HOME=/home/archive/sqllib
 IBM_DB_INCLUDE=/home/archive/sqllib/include
 IBM_DB_LIB=/home/archive/sqllib/lib

If you don't have these values, you will need to find the db2profile script and execute it to set these variables -- it can be found inside the 'sqllib' directory of the database owner's home directory.

Finally, IBM CMOD updates have been known to have problems co-existing with prior versions of Content Manager OnDemand being installed at the same time. Removing old Content Manager OnDemand versions before configuring your newly-installed instance with the uninstallod command may help eliminate this error. Make sure to back up your configuration files first!

If these items didn't help, See the IBM Documentation on ARS0013E: v9.5   v10.1