GoldenGate: Replicate data from SQLServer to TERADATA – Part 1

Since we are arriving at the end of the year, I have taken the mission to replicate data between SQL server and TERADATA. The worst part in this task, is to install and configure a Goldengante in a Windows environment.

Believe, it is not possible to do a Unix installation of goldengate to collect data from SQLserver, goldengate binary needs to be installed on Windows SQLserver host.

After installing the GG binaries, it is good practice to add the MGR as a Windows service:

C:\goldengate> install addevents addservice manualstart

Oracle GoldenGate messages installed successfully.
Service 'GGSMGR' created.

Install program terminated normally.

In order for GG to access the sql database, you need to create a data source (ODBC), and configure a new system DSN (here is db0sql1), and select SQL Server as the database driver.

More“GoldenGate: Replicate data from SQLServer to TERADATA – Part 1”

ORA-27054: NFS file system where the file is created or resides is not mounted with correct options

Due to ease in which we can go to the future or return to the past using Goldengate, it becomes increasingly necessary recover archives from backup, sometimes it is necessary to recover a several days.
To do it, generally we need large disk space, at this time, starts a searching for storage disks.

After finding a disk, is need to mount it, i performed with simply mount options in AIX.

More“ORA-27054: NFS file system where the file is created or resides is not mounted with correct options”

Failure to create ODI schedule


Today, as in another normal days, I found a problem with ODI schedule in the newly created enviroment. While creating a schedule to scenario execution, then clicked in update schedule in Topology > Agents > OracleDIAgent, I received an exception:

ODI-1274: Agent Exception Caused by: Could not find the AgentScheduler instance in order to process 'OdiComputePlanning' request


Oracle support has a solution for this exception, but only for ODI 12c, it happens that my enviroment is ODI, in community oracle, has the same question, but, without answer.

More“Failure to create ODI schedule”

Avoiding lost messages in JDBC Persistent Store, when processing Global Transactions with JMS.

   A few months ago, i had a problem in Persistence Store of JMS queues, soon after perform server restart, I get error from persistence store to recover message: [Store:280064]invalid handle 55981 (server="EVENTS01" store="JDBCStore_3022" table="JDBCStore_3022WLStore"),

   To resolve this problem, just add this parameter on server startup arguments: = true

   With this parameter, the server starts with OK status in WebLogic 11g and with FAILED status in Weblogic 12c, but in both the processing of the messages continues when active,
to remove FAILED status in Weblogic 12c, just need to truncate persistence table in database and restart server (This solution can be found in Oracle Docs).

   This solution did not solved my problem, because I can’t lost or delete messages.

Let’s go analyse the problem:

More“Avoiding lost messages in JDBC Persistent Store, when processing Global Transactions with JMS.”

Weblogic starting with the operating system

Today, let’s to configure weblogic services startup, when machines starts.
In some blogs, we can find a bunch of customized scripts that create and set variables to startup the adminservers, nodemanagers and managed server, but, in my case, i just need to start adminserver and nodemanger, when machines start just after an incident.

For this situation, we need that the startup of application do not interrupt the operation system startup.

*The operation system in subject is Red-Hat 6.5

More“Weblogic starting with the operating system”

Manipulating JMS queues using WLST Script


Today, let’s talk about Java Message Systems (JMS), the reason led me talk about this, is that my environment, a complex architecture of messages where we have more of two hundred queues in the same domain.
The administration of queues in the weblogic console is very simple, but, if you need to remove a million messages, in a hundred queues, you have a problem!
To turn more agile the visualization of messages, state and other queue properties, nothing better than to use WLST.

This post shows a script, which can grow up where you imagine, for while the script have just three options (the most useful to me) and nothing prevents to have more.

More“Manipulating JMS queues using WLST Script”

Setting up a weblogic Result cache on Oracle Service Bus

Hi Guys,

In the current days , even with the new ideals about agile metods and various attempts to put together infraestructure and development (DevOps) we still have so much codes that had the development with a great distance of the machines and S.O.

In this scenario, a lot of exceptions are found in the application logs, but the majority can’t be considerated the problem in fact.

This Post is related to an exception that occurs when a BusinessService in an Oracle Service Bus flux was configured to use a Result cache service, instead to call an external service,
why do we have an exception when calling the result cache? -Because the result cache was not configured on the Weblogic server. An unexpected exception was thrown while using the result cache:

Let’s configure weblogic result cache (Coherence)!

For this lab, will used two machines and two managed servers on a cluster.

First, let’s create two coherence servers, one for each machine:


For each coherence server we must set one lib and one module in the classpath, this box is found in “Start Server” page on the Coherence Server.


In the same page, we need to configure the box “Arguments:” to define coherence hosts and ports.

Attention to fill properly ‘localhost’: For the coherence server1 the localhost value is machine01, to the coherence server2 the value for localhost is machine2.


After settting up the two coherence server, let’s create a coherence cluster, the target must to be the managed servers or Weblogic server Cluster:


After setting up coherence cluster, set the new cluster on each coherence Server.



The last step is to configure coherece Server parameter on each managed server. In Box “Arguments”, which is on page “Start server” on each managed server.

Again, attention to fill properly ‘localhost’: For the Managed server1 the localhost value is machine01, to the Managed server2 the localhost value is machine2.


To validate the settings , start the coherence servers, and wait to RUNNING status. Celebrate with a good wine!



ERROR OGG-02636 when creating a integrated extract in Goldengate 12C on a Puggable database 12C

While creating an integrated extract in Goldengate 12C on a Puggable database 12C I came across the follow error, stating that the needed catalog name is mandatory  and was not being informed.

ERROR OGG-02636 Oracle GoldenGate Capture for Oracle, ext1.prm: The TABLE specification ‘TABLE table_name’ for the source table ‘table_name’ does not include a catalog name. The database requires a catalog name.

There is two ways to solve this case: The first , besides less indicated, is to add the name of pluggable database (Catalog) before the owner name on the table maps, for example:

GGSCI ( 1> edit param ext1


Not really enjoying this solution and after searching for long hours without any other result , our friend Maiquel DC indicated a parameter that identifies the catalog name for all tables in the extract ;

Add the following parameter in extract  configuration file:

GGSCI ( 1> edit param ext1



Thats all folks.

<EJB Exception in method: ejbPostCreate: java.sql.SQLException: XA error: XAResource.XAER_RMFAIL start() failed on resource 'ggds-datasource_domain': XAER_RMFAIL : Resource manager is unavailable

Some incidents that we face are expected. Usually we wait for problems when something changes in an environment.
But, some times, for no apparent reason, with no systemic alteration, we encounter errors where our first reaction is: what a f ***!?

This time we find a java exception in a standard domain for GoldenGate Director;

For months the application behaved stable and functional, until it did fails for no apparent reason;

When I saw part of the exception, “XAER_RMFAIL: Resource manager is unavailable” went straight to talk to one of the best DBAs know that Matheus Boesing, to request a check on the resource manager database, (No problem found).

… then we fall back into a BUG: 11672297 Bug: ORA-01092 MAPPED TO XAER_RMERR instead of XAER_RMFAIL – (Doc ID 1329800.1)

In version 12.1, this bug is fixed, but as a palliative solution can do the following:

Increase the value (Maximum Duration of XA Calls) in JTA configurations of weblogic domain, the default value is 12000, in my case, I adjusted to 48000;

The problem was solved, at least for now.