SOLUTION · SAP SQL ANYWHERE CDC

SAP SQL Anywhere change data capture and real-time data replication

Committed transactions read straight from the SQL Anywhere transaction log, in commit order, with no triggers, no shadow tables, and nothing installed in your database.

Gluesync by MOLO17 captures changes from SAP SQL Anywhere 17, formerly Sybase SQL Anywhere, with a dedicated source agent that reads the database's own transaction log through dbtran, the log translation utility of the SQL Anywhere client. Every committed INSERT, UPDATE, and DELETE, including the ones your triggers make, is delivered continuously to the databases, warehouses, lakes, and event streams your teams already run. The same agent also writes to SQL Anywhere as a target. Manage every pipeline from the Core Hub web UI, the Gluesync control plane.

WHO THIS IS FOR

SQL Anywhere teams moving embedded and departmental data into the rest of the estate

  • ISVs and product teams whose applications ship on SQL Anywhere and who need that data in a central PostgreSQL, SQL Server, or cloud warehouse, without changing the application schema
  • DBAs who want the source left untouched: no triggers, no shadow tables, no objects of Gluesync's own, and one system privilege, BACKUP DATABASE, to read the log
  • Data platform leads who feed analytics, search, or event streams from SQL Anywhere and want one control plane for sources and targets, backed by best-in-class enterprise support, rated 4.9/5 by customers
  • Engineers who built timestamp polling, nightly exports, or MobiLink scripts to move SQL Anywhere data and now own the schedules, retries, and on-call for a pipeline the business relies on

THE PROBLEM

SQL Anywhere data that only moves in batches goes stale, and triggers make the source harder to own

SQL Anywhere often runs inside an application, at a branch, or on a departmental server, while reporting and integration live elsewhere. Scheduled exports and timestamp queries leave those systems working from a copy that is already behind, add read load to a database that serves users, and miss deletes. Trigger-based change tables catch more, but they add objects to the schema, sit on the write path of the application, and need care at every upgrade.

Gluesync addresses that with log-based CDC. The SQL Anywhere agent reads committed transactions from the transaction log the server already writes, Core Hub routes them, and target agents apply them to the destination you choose, in commit order. The snapshot, the monitoring, and the pipeline model are the same whichever target you pick.

HOW IT WORKS

How Gluesync does SAP SQL Anywhere CDC

The transaction log, read with dbtran

SQL Anywhere writes every change to its transaction log, and the SQL Anywhere client includes dbtran, the utility that translates the log into SQL statements. Core Hub runs dbtran against the database with the agent's credentials, parses what it writes as a stream, and keeps the changes of the tables you replicate.

  • Committed transactions only: transactions that are still open are not read yet, and transactions that roll back, in full or to a savepoint, are never delivered.
  • Commit order: transactions that touch several tables are delivered in the order they committed.
  • Trigger changes included: the statements your triggers run are in the log, so their changes are captured too.
  • Cheap when idle: a single reader serves every table of the agent, and a check that finds no new commit is one quick query. The polling interval is configurable.
  • Nothing installed: no triggers, no shadow tables, and no objects of Gluesync's own in your database. SQL Anywhere source setup guide ↗

Full rows on the target, from a log that records changes

  • Inserts: the log carries every column of the row.
  • Updates: on a table with a primary key the log carries the changed columns and the key, and the agent completes the change with the current row read by key, so the target always receives the full row.
  • Key changes: an update of the primary key reaches the target as a delete of the old key and an insert of the new one.
  • Tables without a primary key: updates and deletes carry the whole row before the change, which identifies the row.
  • Long values: LONG VARCHAR, LONG NVARCHAR, and LONG BINARY values that the log writes in pieces are reassembled before delivery, and a value read by CDC equals the value a snapshot reads.

Resumable, with no gap between snapshot and CDC

  • Snapshot first: snapshot jobs seed the target tables, reading tables with a primary key in key order, before CDC takes over. A per-table filter limits the rows a snapshot reads.
  • No gap: a snapshot records the end of the log before it starts, so a change committed while it runs is delivered by CDC afterwards.
  • Resume after a restart: each transaction is stored in the agent's persisted cache in Core Hub before the position moves past it, so after a restart of Core Hub or the agent the reading resumes where it stopped.
  • Log renames handled: mount the directory of the server's transaction log into Core Hub and the agent also reads logs renamed by your backup jobs.

Two-way sync between SQL Anywhere databases

Give the Gluesync agent that writes into a database its own database user, and list that user among the excluded users of the agent that reads the same database. dbtran then leaves out every transaction of that user, so the changes one pipeline writes are not sent back by the other.

What your DBA sets up

The agent reads the catalog, the tracked tables, and the transaction log. One system privilege and SELECT cover it.

  1. Create a database user for Gluesync and grant it BACKUP DATABASE, the system privilege dbtran needs to scan the log.
  2. Grant SELECT on the tables to replicate, or SELECT ANY TABLE.
  3. Install the SAP SQL Anywhere 17 client on the Core Hub host, or mount it into the Core Hub container at /opt/sqlanywhere17. Core Hub runs on Linux x86_64, or as linux/amd64, for this agent.
  4. Open the database port to Core Hub, 2638 by default, and enter the host, database name, and credentials in Core Hub. Turn on TLS for the connection when the network calls for it.
  5. Rename the active transaction log regularly, after the agent has read it, to keep each read fast.

Data types

The agent reads each column's type from the SQL Anywhere catalog, and a column of a user-defined domain is read as its base type.

  • Numbers: BIT, TINYINT, SMALLINT, INTEGER, BIGINT, the unsigned types, NUMERIC, DECIMAL, MONEY, REAL, FLOAT, and DOUBLE, with precision and scale kept.
  • Dates and times: DATE, TIME, TIMESTAMP, DATETIME, and TIMESTAMP WITH TIME ZONE, with microseconds and offsets kept.
  • Text: CHAR, VARCHAR, LONG VARCHAR, the NCHAR family, XML, and UNIQUEIDENTIFIER.
  • Binary and spatial: BINARY, VARBINARY, LONG BINARY, bit strings, and ST_GEOMETRY as EWKB with its SRID.

Architecture around Core Hub

Core Hub is the control plane above the agents: web UI, REST APIs, and routing from the SQL Anywhere source agent to its targets. A pipeline groups the source agent, its target agents, and the tables they replicate. Core Hub and agents deploy with Docker, Docker Compose, or Kubernetes.

Explore the general CDC streaming architecture →

CAPTURE OPTIONS

The SAP SQL Anywhere agent: one agent, source and target

SAP SQL Anywhere has one Gluesync agent. It captures from the transaction log as a source and writes through the SAP JDBC driver, with an optional OPENSTRING bulk path, as a target.

AgentCapture techniqueVersionsBest for
SAP SQL Anywhere agent ↗ Transaction log read with dbtran from the SQL Anywhere client, committed transactions in commit order, with snapshots for initial loads; SAP JDBC driver (sajdbc4) SAP SQL Anywhere 17; tested on 17.0.11 with the SQL Anywhere 17 client SQL Anywhere 17 databases whose data should reach SQL databases, warehouses, lakes, or event streams in real time, with the schema left untouched and one system privilege granted.

TARGETS AND TOPOLOGIES

Deliver SQL Anywhere changes to the systems you already run

Open the integrations finder with SQL Anywhere pre-selected to see every target you can pair with it. SQL Anywhere can be a source, a target, or both.

Gluesync keeps pace with your change volume at any scale. MOLO17 Professional Services can help plan the client setup, the log maintenance, and the targets with your team.

Target agents write in optimized batches, never row by row, and switch to native bulk load for both snapshots and CDC on targets such as Snowflake, Databricks, Google BigQuery, Amazon Redshift, Microsoft SQL Server, and PostgreSQL.

FAIR, HIGH-LEVEL COMPARISON

Where Gluesync fits among SQL Anywhere replication approaches

ApproachWhat buyers usually getWhere Gluesync fits
MobiLink and SQL Remote SAP's own synchronization between SQL Anywhere and consolidated databases, with scripts and remote setup you maintain per deployment Log-based delivery to warehouses, lakes, event streams, and SQL and NoSQL targets from one Core Hub, with nothing to deploy in the database; see database offload
Trigger-based change tables Change capture inside the database, with triggers and tables added to the schema and extra work on every write Reads the transaction log the server already writes, so the schema and the application's write path stay as they are; read log-based CDC explained
ETL and ELT tools Scheduled extracts through ODBC or JDBC; deletes and intermediate changes between runs are easy to miss Every committed insert, update, and delete delivered continuously, in commit order; read batch ETL vs real-time data replication
DIY scripts Full control; your team owns the extract queries, change detection, retries, and every target writer Snapshots, a resumable log reader, and Core Hub monitoring without pipeline code to maintain; see migrating to Gluesync

FAQ

SAP SQL Anywhere CDC questions

What is SAP SQL Anywhere CDC with Gluesync?

Change data capture from the SQL Anywhere transaction log. The source agent reads committed transactions with dbtran, the log translation utility of the SQL Anywhere client, and Core Hub delivers every insert, update, and delete, in commit order, to the targets you configure.

Which SQL Anywhere versions does the agent support?

SAP SQL Anywhere 17. MOLO17 tests the agent against SQL Anywhere 17.0.11 with the SQL Anywhere 17 client.

Does the agent change my database?

No. As a source it reads the catalog, the tracked tables, and the transaction log. It creates no triggers, no shadow tables, and no objects of its own.

What privileges does the database user need?

The BACKUP DATABASE system privilege, which dbtran needs to scan the log, and SELECT on the tables to replicate. The agent checks the log access when an entity is set up.

What do we install for the agent?

The SAP SQL Anywhere 17 client, which provides the SAP JDBC driver and dbtran. Install it on the Core Hub host or mount it into the Core Hub container at /opt/sqlanywhere17. Core Hub runs on Linux x86_64 for this agent.

Are changes made by triggers captured?

Yes. The statements your triggers run are written to the transaction log, so their changes are captured with the rest of the transaction.

How do we keep the transaction log fast to read?

Rename the active log regularly with your backup job, after the agent has read it, and mount the directory of the server's log into Core Hub at the same path. The agent then also reads logs that were renamed before it reached them.

Is SQL Anywhere the same as SAP ASE?

No. SAP ASE, formerly Sybase ASE, is a different server with its own Gluesync agents, a log reader and a triggers agent. The SAP ASE CDC page covers them.

Where should we start?

Start a Gluesync trial with a non-production SQL Anywhere 17 database, then read the SQL Anywhere agent overview and the source setup guide. Talk to MOLO17 if you need help with the client setup or the target design.

Evaluate Gluesync with your SQL Anywhere transaction log

Start a trial on your infrastructure, or talk to MOLO17 about your SQL Anywhere databases, the privileges your DBA can approve, and the targets you need.