{"id":45630,"date":"2026-08-17T08:11:00","date_gmt":"2026-08-17T06:11:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=45630"},"modified":"2026-08-13T13:34:37","modified_gmt":"2026-08-13T11:34:37","slug":"checking-long-running-transactions-in-goldengate","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/","title":{"rendered":"Checking Long Running Transactions in GoldenGate"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">When doing complex operations with GoldenGate, checking for long running transactions is mandatory if you don\u2019t want to miss transactions. Let\u2019s look at two ways of retrieving such information, first with the <code>adminclient<\/code>, and then with the REST API.<\/p>\n\n\n\n<h2 id=\"h-when-and-why-should-i-worry-about-long-running-transactions\" class=\"wp-block-heading\">When and why should I worry about long running transactions ?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In a standard extract life-cycle, you should not be worrying about long running transactions. In fact, the only time you should think about these is when you plan an extract migration. By this, I mean moving an ongoing extract to a new GoldenGate environment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This could be the case if you are moving the extract to a new GoldenGate deployment, whether it\u2019s because of a version upgrade, system change or architecture change.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another candidate scenario would be if you wanted to rename an extract.<\/p>\n\n\n\n<h2 id=\"h-checking-for-long-running-transactions-with-the-adminclient\" class=\"wp-block-heading\">Checking for Long Running Transactions with the <code>adminclient<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To check for long running transactions in the source database, you can use the <code>adminclient<\/code> and the <code>showtrans tabular<\/code> option of the <code>send<\/code> command.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OGG (https:\/\/vmogg ogg_test_01) 1&gt; send extract ext showtrans tabular\n\nSending showtrans tabular request to Extract group EXT ...\n\n\n\nXID                     Items    Extract   Redo Thread  Start Time           SCN                               Redo Seq  Redo RBA            Status\n------------------------------------------------------------------------------------------------------------------------------------------------------\n0.17.18.1700953         0        EXT       1            2026-06-06:08:04:12  629.3084780551 (2704619209735)    48911     156909584           Running<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>WARNING:<\/strong> This command will query the database for <strong>ALL<\/strong> active transactions ! There is absolutely no filter in place to only show transactions that are relevant for the extract you are targeting. To confirm this, let\u2019s look in the database to get more information about this transaction.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-- Query to get the schema associated with a specific transaction, based on the XID column from the OGG output above\nSELECT s.username, t.xidusn, t.xidslot, t.xidsqn, t.start_time, t.start_scn\nFROM v$transaction t\nJOIN v$session s ON t.ses_addr = s.saddr\nWHERE t.xidusn = 17\nAND t.xidslot = 18\nAND t.xidsqn = 1700953;\n\nUSERNAME       XIDUSN     XIDSLOT      XIDSQN START_TIME          START_SCN\n---------  ----------  ----------  ---------- ------------------- ----------------\nDBIBLOG            17          18     1700953 06\/06\/26 08:04:12   2704619209735<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">But if I look at the extract parameter file, the <code>DBIBLOG<\/code> schema is not even being extracted.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OGG (https:\/\/vmogg ogg_test_01) 1&gt; view params EXT\nEXTRACT EXT\nUSERIDALIAS source_cdb DOMAIN OracleGoldenGate\nEXTTRAIL pdb1\/aa\nSOURCECATALOG PDB1\nTABLE APP_SCHEMA.*;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Of course, the <code>DBIBLOG<\/code> user might be editing data in the <code>APP_SCHEMA<\/code> schema, but there is no way to know for sure just by looking at the output of <code>adminclient<\/code> command above.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When searching for long running transactions, you should retrieve the <code>START_SCN<\/code> of the transaction. In the example given above, the <code>START_SCN<\/code> is <code>2704619209735<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now that we have the <code>START_SCN<\/code>, we can check if the extract has already processed it or not by looking at the checkpoint information. From the <code>adminclient<\/code>, run the <code>info extract EXT showch<\/code> command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OGG (https:\/\/vmogg ogg_test_01) 1&gt; info extract EXT showch\n\nExtract    EXT       Last Started 2026-06-06 07:45   Status RUNNING\nDescription          'Test extract'\nCheckpoint Lag       00:01:45 (updated 00:00:32 ago)\nProcess ID           11711\nLog Read Checkpoint  Oracle Integrated Redo Logs\n                     2026-06-06:09:01:45\n                     SCN 629.3086233843 (2704620663027)\nSettings Profile     ogg:managedProcessSettings:dbiDefault\n\n\nCurrent Checkpoint Detail:\n\nRead Checkpoint #1\n\n  Oracle Integrated Redo Log\n\n  Startup Checkpoint (starting position in the data source):\n    Timestamp: 2026-06-06:07:45:45.000000\n    SCN: 0.0 (0)\n\n  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):\n    Timestamp: 2026-06-06:08:04:13.000000\n    SCN: 629.3084780551 (2704619209735)\n\n  Current Checkpoint (position of last record read in the data source):\n    Timestamp: 2026-06-06:09:01:45.000000\n    SCN: 629.3086233843 (2704620663027)\n\n  BR Startup Recovery Checkpoint:\n    Timestamp: 2026-06-02 10:17:33.403806\n    SCN: 0.0 (0)\n\n  BR Begin Recovery Checkpoint:\n    Timestamp: 2026-06-06 08:04:13.000000\n    SCN: 629.3084780551 (2704619209735)\n\n  BR End Recovery Checkpoint:\n    Timestamp: 2026-06-06 08:08:45.000000\n    SCN: 629.3084879559 (2704619308743)\n\nWrite Checkpoint #1\n\n  GGS Log Trail\n\n  Current Checkpoint (current write position):\n    Sequence #: 41\n    RBA: 50476\n...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If we put side to side the <code>START_SCN<\/code> of the long running transaction and the <code>SCN<\/code> of the recovery checkpoint, we can see that they are exactly the same (<code>2704619209735<\/code>). This is expected, and it means that the extract has not yet processed this transaction.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># From SQL query on the source database\nUSERNAME       XIDUSN     XIDSLOT      XIDSQN START_TIME          START_SCN\n---------  ----------  ----------  ---------- ------------------- ----------------\nDBIBLOG            17          18     1700953 06\/06\/26 08:04:12   2704619209735\n\n# From adminclient\n  Recovery Checkpoint (position of oldest unprocessed transaction in the data source):\n    Timestamp: 2026-06-06:08:04:13.000000\n    SCN: 629.3084780551 (2704619209735)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If you wanted to <strong>move the extract<\/strong> to another GoldenGate installation or <strong>rename it<\/strong>, this would be the <code>SCN<\/code> at which you would need to start the new extract to avoid missing transactions.<\/p>\n\n\n\n<h2 id=\"h-checking-for-long-running-transactions-from-the-rest-api\" class=\"wp-block-heading\">Checking for Long Running Transactions from the REST API<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you are trying to <strong>automate<\/strong> the process of checking for long running transactions, using the <code>adminclient<\/code> might not be the best option. In fact, the display of long running transactions in the <code>adminclient<\/code> is not designed to be easily parsed by scripts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fortunately, you can also <strong>check for long running transactions<\/strong> using the official <strong>GoldenGate REST API<\/strong>. The endpoint that you need to call is <code>GET \/services\/{version}\/connections\/{connection}\/activeTransactions<\/code>. It is described in the GoldenGate <a href=\"https:\/\/docs.oracle.com\/en\/database\/goldengate\/core\/26\/oggra\/op-services-version-connections-connection-activetransactions-get.html\" target=\"_blank\" rel=\"noreferrer noopener\">REST API documentation<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The endpoint path parameters explain why the transactions shown in the output are not specific to the endpoint. In GoldenGate, a <code>connection<\/code> is database specific. Combine the domain name and the alias name with a dot separator to form the <code>connection<\/code> name. In my case, the <code>connection<\/code> name is <code>OracleGoldenGate.source_cdb<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Python, let\u2019s see two ways of getting the same information:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Using the production-ready Python client I presented in <a href=\"https:\/\/www.dbi-services.com\/blog\/production-ready-goldengate-rest-client-in-python\/\" target=\"_blank\" rel=\"noreferrer noopener\">another blog<\/a>.<\/li>\n\n\n\n<li>Using the <code>requests<\/code> library to call the REST API directly.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Using the Python client, you can just call the <code>get_active_transactions<\/code> method as follows:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nfrom oggrestapi import OGGRestAPI\n\nogg_client = OGGRestAPI(\n    url=&quot;https:\/\/vmogg:7809&quot;,\n    username=&quot;ogg&quot;,\n)\n\nactive_transactions = ogg_client.get_active_transactions(&#039;OracleGoldenGate.source_cdb&#039;)\n\n&amp;gt;&amp;gt;&amp;gt; active_transactions\n{&#039;activeTransactions&#039;: &#x5B;{&#039;txnStartScn&#039;: 2704619209735, &#039;txnStatus&#039;: &#039;ACTIVE&#039;, &#039;txnStartDate&#039;: &#039;2026-06-06T08:04:12.000Z&#039;, &#039;sid&#039;: 834, &#039;serialNum&#039;: 16450, &#039;instanceId&#039;: 1, &#039;userName&#039;: &#039;DBIBLOG&#039;, &#039;osUser&#039;: &#039;oracle&#039;, &#039;sessionStatus&#039;: &#039;INACTIVE&#039;, &#039;logonTime&#039;: &#039;2026-06-06T08:04:11.456Z&#039;}], &#039;currentScn&#039;: {&#039;csn&#039;: 2704620465717, &#039;currentDate&#039;: &#039;2026-06-06T08:27:45.717Z&#039;, &#039;userName&#039;: &#039;SYS&#039;}, &#039;$schema&#039;: &#039;ogg:activeTransactions&#039;}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Otherwise, with the <code>requests<\/code> library, you can call the <code>activeTransactions<\/code> endpoint as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import requests\n\nconnection_name = \"OracleGoldenGate.source_cdb\"\n# Basic configuration\n# Direct connection (no reverse proxy)\n# url = f\"https:\/\/vmogg:7809\/services\/v2\/connections\/{connection_name}\/activeTransactions\"\n# NGINX reverse proxy\nurl = f\"https:\/\/vmogg\/services\/ogg_test_01\/adminsrvr\/v2\/connections\/{connection_name}\/activeTransactions\"\n\nauth = (\"ogg\", \"ogg_password\")\nresponse = requests.get(\n    url,\n    auth=auth\n)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Here is an example of the output that you should get when looking at the <code>response.json()<\/code> value:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; active_transactions = response.json()&#091;'response']\n&gt;&gt;&gt; active_transactions\n{'activeTransactions': &#091;{'txnStartScn': 2704619209735, 'txnStatus': 'ACTIVE', 'txnStartDate': '2026-06-06T08:04:12.000Z', 'sid': 834, 'serialNum': 16450, 'instanceId': 1, 'userName': 'DBIBLOG', 'osUser': 'oracle', 'sessionStatus': 'INACTIVE', 'logonTime': '2026-06-06T08:04:11.456Z'}], 'currentScn': {'csn': 2704620465717, 'currentDate': '2026-06-06T08:27:45.717Z', 'userName': 'SYS'}, '$schema': 'ogg:activeTransactions'}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Or using the <code>json.dumps()<\/code> method to get a more readable output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; import json\n&gt;&gt;&gt; print(json.dumps(active_transactions, indent=4))\n{\n    \"activeTransactions\": &#091;\n        {\n            \"txnStartScn\": 2704619209735,\n            \"txnStatus\": \"ACTIVE\",\n            \"txnStartDate\": \"2026-06-06T08:04:12.000Z\",\n            \"sid\": 834,\n            \"serialNum\": 16450,\n            \"instanceId\": 1,\n            \"userName\": \"DBIBLOG\",\n            \"osUser\": \"oracle\",\n            \"sessionStatus\": \"INACTIVE\",\n            \"logonTime\": \"2026-06-06T08:04:11.456Z\"\n        }\n    ],\n    \"currentScn\": {\n        \"csn\": 2704620465717,\n        \"currentDate\": \"2026-06-06T08:27:45.717Z\",\n        \"userName\": \"SYS\"\n    },\n    \"$schema\": \"ogg:activeTransactions\"\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Using the REST API, the information is more complete and easier to parse. As mentioned before, retrieving the <code>SCN<\/code> at which the transaction started is sometimes necessary. In that case, you can get it from the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; start_scn = active_transactions&#091;'activeTransactions']&#091;0]&#091;'txnStartScn']\n&gt;&gt;&gt; start_scn\n2704619209735<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If you have multiple long running transactions, you should retrieve the minimum value for the <code>txnStartScn<\/code> to be sure to get the <code>SCN<\/code> of the oldest long running transaction.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; start_scns = &#091;txn&#091;'txnStartScn'] for txn in active_transactions&#091;'activeTransactions']]\n&gt;&gt;&gt; min(start_scns)\n2704619209735<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now that we\u2019ve retrieved the <code>START_SCN<\/code> of the long running transaction, we should check the checkpoint information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Using the Python client, you can call the <code>get_extract_checkpoint<\/code> method as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; extract_checkpoints = ogg_client.get_extract_checkpoint('EXT')\n&gt;&gt;&gt; extract_checkpoints\n{'$schema': 'ogg:extractCheckpoints', 'current': {'input': &#091;{'starting': {'timestamp': '2026-06-06T07:45:45.000Z', 'thread': 1, 'sequence': 0, 'offset': 0, 'csn': None, 'name': None}, 'recovery': {'timestamp': '2026-06-06T08:04:13.000Z', 'thread': 1, 'sequence': 48911, 'offset': 156909584, 'csn': 2704619209735, 'name': None}, 'current': {'timestamp': '2026-06-06T09:01:45.000Z', 'thread': 1, 'sequence': 0, 'offset': 0, 'csn': 2704620663027, 'name': None}, 'boundedRecoveryPrevious': {'timestamp': '2026-06-02 10:17:33.404Z', 'thread': 0, 'sequence': 0, 'offset': 0, 'csn': None, 'name': None}, 'boundedRecoveryBegin': {'timestamp': '2026-06-06T08:04:13.000Z', 'thread': 0, 'sequence': 48911, 'offset': 156909584, 'csn': 2704619209735, 'name': None}, 'boundedRecoveryEnd': {'timestamp': '2026-06-06T08:08:45.000Z', 'thread': 1, 'sequence': 48912, 'offset': 156918384, 'csn': 2704619308743, 'name': None}}]}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Or, using the <code>requests<\/code> library:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>response = requests.get(\n    \"https:\/\/vmogg\/services\/ogg_test_01\/adminsrvr\/v2\/extracts\/EXT\/checkpoint\",\n    auth=auth\n)\n\nextract_checkpoints = response.json()&#091;'response']<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a more readable output from the checkpoint information:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; print(json.dumps(extract_checkpoints, indent=4))\n{\n    \"$schema\": \"ogg:extractCheckpoints\",\n    \"current\": {\n        \"input\": &#091;\n            {\n                \"starting\": {\n                    \"timestamp\": \"2026-06-06T07:45:45.000Z\",\n                    \"thread\": 1,\n                    \"sequence\": 0,\n                    \"offset\": 0,\n                    \"csn\": null,\n                    \"name\": null\n                },\n                \"recovery\": {\n                    \"timestamp\": \"2026-06-06T08:04:13.000Z\",\n                    \"thread\": 1,\n                    \"sequence\": 48911,\n                    \"offset\": 156909584,\n                    \"csn\": 2704619209735,\n                    \"name\": null\n                },\n                \"current\": {\n                    \"timestamp\": \"2026-06-06T09:01:45.000Z\",\n                    \"thread\": 1,\n                    \"sequence\": 0,\n                    \"offset\": 0,\n                    \"csn\": 2704620663027,\n                    \"name\": null\n                },\n                \"boundedRecoveryPrevious\": {\n                    \"timestamp\": \"2026-06-02T10:17:33.404Z\",\n                    \"thread\": 0,\n                    \"sequence\": 0,\n                    \"offset\": 0,\n                    \"csn\": null,\n                    \"name\": null\n                },\n                \"boundedRecoveryBegin\": {\n                    \"timestamp\": \"2026-06-06T08:04:13.000Z\",\n                    \"thread\": 0,\n                    \"sequence\": 48911,\n                    \"offset\": 156909584,\n                    \"csn\": 2704619209735,\n                    \"name\": null\n                },\n                \"boundedRecoveryEnd\": {\n                    \"timestamp\": \"2026-06-06T08:08:45.000Z\",\n                    \"thread\": 1,\n                    \"sequence\": 48912,\n                    \"offset\": 156918384,\n                    \"csn\": 2704619308743,\n                    \"name\": null\n                }\n            }\n        ]\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And to finish with, from the json, you can retrieve the <code>SCN<\/code> of the recovery checkpoint:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; recovery_checkpoint_scn = extract_checkpoints&#091;'current']&#091;'input']&#091;0]&#091;'recovery']&#091;'csn']\n&gt;&gt;&gt; recovery_checkpoint_scn\n2704619209735<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Whether it\u2019s to rename or move an extract, you now know why you should check long running transactions in GoldenGate, and how to do it from the <code>adminclient<\/code> and the REST API.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When doing complex operations with GoldenGate, checking for long running transactions is mandatory if you don\u2019t want to miss transactions. Let\u2019s look at two ways of retrieving such information, first with the adminclient, and then with the REST API. When and why should I worry about long running transactions ? In a standard extract life-cycle, [&hellip;]<\/p>\n","protected":false},"author":152,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[3787,59],"tags":[979,328,3730,96,1521,3767,4144],"type_dbi":[3801,3740,3881,2728,3800,3769,4145],"class_list":["post-45630","post","type-post","status-publish","format-standard","hentry","category-goldengate","category-oracle","tag-api","tag-goldengate","tag-ogg","tag-oracle","tag-rest","tag-restapi","tag-transactions","type-api","type-goldengate","type-ogg","type-oracle","type-rest","type-restapi","type-transactions"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.2 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Checking Long Running Transactions in GoldenGate - dbi Blog<\/title>\n<meta name=\"description\" content=\"How to check for long running transactions in GoldenGate, using both the adminclient and the REST API, before they cause issues.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Checking Long Running Transactions in GoldenGate\" \/>\n<meta property=\"og:description\" content=\"How to check for long running transactions in GoldenGate, using both the adminclient and the REST API, before they cause issues.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-17T06:11:00+00:00\" \/>\n<meta name=\"author\" content=\"Julien Delattre\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Julien Delattre\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/checking-long-running-transactions-in-goldengate\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/checking-long-running-transactions-in-goldengate\\\/\"},\"author\":{\"name\":\"Julien Delattre\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/764ab019cc9dec42655b4c6b9b8e474e\"},\"headline\":\"Checking Long Running Transactions in GoldenGate\",\"datePublished\":\"2026-08-17T06:11:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/checking-long-running-transactions-in-goldengate\\\/\"},\"wordCount\":743,\"commentCount\":0,\"keywords\":[\"api\",\"GoldenGate\",\"ogg\",\"Oracle\",\"rest\",\"restapi\",\"transactions\"],\"articleSection\":[\"GoldenGate\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/checking-long-running-transactions-in-goldengate\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/checking-long-running-transactions-in-goldengate\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/checking-long-running-transactions-in-goldengate\\\/\",\"name\":\"Checking Long Running Transactions in GoldenGate - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-08-17T06:11:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/764ab019cc9dec42655b4c6b9b8e474e\"},\"description\":\"How to check for long running transactions in GoldenGate, using both the adminclient and the REST API, before they cause issues.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/checking-long-running-transactions-in-goldengate\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/checking-long-running-transactions-in-goldengate\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/checking-long-running-transactions-in-goldengate\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Checking Long Running Transactions in GoldenGate\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/764ab019cc9dec42655b4c6b9b8e474e\",\"name\":\"Julien Delattre\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g\",\"caption\":\"Julien Delattre\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/juliendelattre\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Checking Long Running Transactions in GoldenGate - dbi Blog","description":"How to check for long running transactions in GoldenGate, using both the adminclient and the REST API, before they cause issues.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/","og_locale":"en_US","og_type":"article","og_title":"Checking Long Running Transactions in GoldenGate","og_description":"How to check for long running transactions in GoldenGate, using both the adminclient and the REST API, before they cause issues.","og_url":"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/","og_site_name":"dbi Blog","article_published_time":"2026-08-17T06:11:00+00:00","author":"Julien Delattre","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Julien Delattre","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/"},"author":{"name":"Julien Delattre","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/764ab019cc9dec42655b4c6b9b8e474e"},"headline":"Checking Long Running Transactions in GoldenGate","datePublished":"2026-08-17T06:11:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/"},"wordCount":743,"commentCount":0,"keywords":["api","GoldenGate","ogg","Oracle","rest","restapi","transactions"],"articleSection":["GoldenGate","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/","url":"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/","name":"Checking Long Running Transactions in GoldenGate - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2026-08-17T06:11:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/764ab019cc9dec42655b4c6b9b8e474e"},"description":"How to check for long running transactions in GoldenGate, using both the adminclient and the REST API, before they cause issues.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/checking-long-running-transactions-in-goldengate\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Checking Long Running Transactions in GoldenGate"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/764ab019cc9dec42655b4c6b9b8e474e","name":"Julien Delattre","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g","caption":"Julien Delattre"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/juliendelattre\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/45630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/152"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=45630"}],"version-history":[{"count":5,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/45630\/revisions"}],"predecessor-version":[{"id":46468,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/45630\/revisions\/46468"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=45630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=45630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=45630"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=45630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}