SAP SQL Anywhere Agent for Gluesync: Features Overview
Core principles
This agent connects to SAP SQL Anywhere through the SAP JDBC driver (sajdbc4) and, as a source, reads changes with the dbtran log translation utility of the SQL Anywhere client.
SAP does not allow Gluesync to redistribute the SQL Anywhere client, so neither the driver nor dbtran ships with Gluesync. You install the SQL Anywhere 17 client on the machine that runs Core Hub, or mount it into the Core Hub container at /opt/sqlanywhere17. See The SAP SQL Anywhere client for what to install and how to mount it.
Change data capture
The source agent reads committed transactions from the transaction log of the database. It creates no triggers, no shadow tables and no objects of its own in your database, so the tables keep their own triggers and the write path of your application is untouched.
Core Hub runs dbtran against the database, parses what it writes and delivers each committed transaction, in commit order, to the target. Changes made by triggers are captured, transactions that roll back are not delivered, and an update that the log records only in part is completed to the full row by key before it is sent.
To read more, see How it works and Transaction log size and renames.
Supported version
Gluesync works on SAP SQL Anywhere 17. The integration tests run against SQL Anywhere 17.0.11 with the SQL Anywhere 17 client.
Requirements
-
Core Hub on Linux x86_64: SAP ships the SQL Anywhere client for Linux x86_64 only. On any other operating system or architecture the agent stops during its setup with a message that says so;
-
The SAP SQL Anywhere 17 client, available to Core Hub at
/opt/sqlanywhere17, in the folder named by theSQLANY17environment variable, or in the folder set in the agent as SQL Anywhere client folder; -
For a source, a database user with the
BACKUP DATABASEsystem privilege andSELECTon the tracked tables.
Platform supported features
| Feature | Support | Notes |
|---|---|---|
Target role |
✅ |
Writes to SAP SQL Anywhere through the SAP JDBC driver, with pooling and an optional bulk path. |
Source role |
✅ |
Captures changes from the transaction log with |
Snapshots |
✅ |
Snapshot jobs seed the target tables before CDC resumes. A table with a primary key is read in key order. |
CDC |
✅ |
Committed |
CDC type |
Transaction log |
The log is translated with |
User defined data types |
✅ |
A column of a user-defined domain is read and written as its base type. |
Bulk load |
✅ |
Rows are loaded in text batches read by |
Database pooling |
✅ |
Supports connection pooling for efficient resource utilization across multiple pipelines. |
Source persisted internal cache |
✅ |
The changes read from the log are kept in a persisted cache of Core Hub until each entity has consumed them. |
Target persisted internal cache |
N/A |
Writes go straight to SQL Anywhere. |
Driver / connector |
SAP JDBC driver ( |
Provided by the SQL Anywhere 17 client that you install; not shipped with Gluesync. |
Chains |
N/A |
Not supported. |
Truncate operation support (reading) |
❌ |
|
Truncate operation support (writing) |
✅ |
Honors the Core Hub “TRUNCATE before snapshot” option when enabled. |
Q&A
I have got Sybase ASE, is it supported? Sybase ASE has its own agents. See Sybase ASE.
Are SQL Anywhere 16 or 12 supported?
The agent is built and tested for SQL Anywhere 17: it loads the version 17 libraries of the client (libdbjdbc17) and looks for the client in SQLANY17.
Does the agent change my database? As a source, no: it only reads the catalog, the tables and the transaction log. As a target it creates the target tables when they do not exist, as it does for any SQL target.