Sybase IQ (2.2)

This section contains information that is specific to the database type Sybase IQ.

Note!

The Sybase IQ database type requires jConnect v16.0 and later. 

Supported Functions

The Sybase IQ database can be used with:

  • Audit Profile
  • Database Collection/Forwarding Agents
  • Event Notifications

Preparations

The Sybase JDBC driver that is included in the SDK has to be downloaded to the Platform in order to connect to a Sybase IQ database from Usage Engine.

You must proceed as follows

1. Set up a persistent file system

2. Go to the SAP Software Solutions web page for information about the SDK and included drivers:
   https://www.sap.com/index.html.

3. Copy the downloaded jar file to the $MZ_HOME/persistent/3pp folder on the plaform-0 pod. Eg:
   $ kubectl cp jconn4.jar platform-0:/opt/mz/persistent/3pp -n <namespace>

4. Restart the platform and EC pods
   $ kubectl delete pod platform-0 -n <namespace>

5. Restart the Desktop

Close Pooled Connections

  The APL function closePooledConnections enables you to close a pooled connection with the Sybase IQ server. This feature helps you eliminate invalid connections.

Note!

This function only closes inactive connections, regardless of how long the connections have been idle.  

int closePooledConnections
     (string dbProfile)

Parameters

Returned Value

Description

dbProfile

The name of the database where the table is stored, preceded by the folder name.


Example - Using APL function closePooledConnections

persistent int profileUsageCnt; 
      .... 
      if ( profileUsageCnt > 100 ) { 
         closePooledConnections("sybase_iq.mydb"); 
         profileUsageCnt = 0; 
      }

Performance Tuning

The default maximum number of connections on an Execution Context is five. You can tune this number by setting the Execution Context property sybase.iq.pool.maxlimit in the relevant EC.

Example - Setting the maximum number of connections for Sybase IQ

For Helm deployed ECs, in values.yaml add at:
systemProperties:
  - config.properties.sybase.iq.pool.maxlimit=20

For Web Interface deployed ECs, in Web Interface add in:
EC Deployment, Execution Context, Configure EC: System Properties: Add -> 
config.properties.sybase.iq.pool.maxlimit=20 

Deploy the EC again in the Web Interface or with:
$ kubectl delete pod <ec-pod> -n <namespace>

By default there is no timeout value defined for the socket tied to a database connection. This means that a running query could get stuck, in case the database suddenly becomes unreachable. To specify a timeout value, in milliseconds, set the Execution Context property sybase.jdbc.socketread.timeout .


Example - Setting the timeout for a socket tied to a Sybase IQ connection

For Helm deployed ECs, in values.yaml add at:
systemProperties:
  - config.properties.sybase.jdbc.socketread.timeout=600000 

For Web Interface deployed ECs, in Web Interface add in:
EC Deployment, Execution Context, Configure EC: System Properties: Add ->
config.properties.sybase.jdbc.socketread.timeout=600000 

Deploy the EC again in the Web Interface or with:
$ kubectl delete pod <ec-pod> -n <namespace

Note!

When using the timeout property you must ensure that you set a limit that exceeds your longest running query, otherwise you might terminate a connection while it is executing a query.