Monthly Archives: October 2013

Moving Oracle GoldenGate Director repository to different server

Just moved Oracle GoldenGate Director 11.1.1.0 oracle repository database from side by side instance to different server using DBMS_DATAPUMP and was wondering how to change weblogic domain configs to point them to the new destination.
The solution is to change GG_Dir/domain/config/jdbc/ggds-datasource-jdbc.xml. Have changed the following part:


<jdbc-driver-params>
<url>jdbc:oracle:thin:@//my.server:1521/service_name</url>
<driver-name>oracle.jdbc.OracleDriver</driver-name>
<properties>
<property>
<name>user</name>
<value>ggs_dir</value>
</property>
<property>
<name>portNumber</name>
<value>1521</value>
</property>
</properties>
<password-encrypted>{AES}YoUrPaS5w0rD</password-encrypted>
</jdbc-driver-params>

Just to remember: various C++ tips

1. The assignment operator of a derived class must explicitly perform the assignment of it’s base class


Derived& Derived::operator =(const Derived& aRhs){
if( this != &aRhs ){
Base::operator=(aRhs);
}
return *this;
}

2. Virtual destructor is vital for every polymorphic class because it’s called when applying operator delete to the pointer of a base type pointing to the object of the derived type.
3. Never pass auto_ptr as reference.
4. Whenever a const auto_ptr is passed or returned as an argument, any attempt to assign a new object results in a compile-time error. With respect to constness, a const auto_prt behaves like a constant pointer (T* const p) not like a pointer that refers to constant (const T* p).
5. auto_ptr as memeber: implement the copy constructor and operator=. By default they transfer ownership.
6. Use const auto_ptr if member is to refer to the same object through all the lifetime.
7. To properly wrap class into Loki::SingletonHolder make the following members private:

  • default constructor
  • copy constructor
  • operator=
  • destructor
  • operator&

8. If any constructor for a class is declared then the compiler won’t generate the default one.

GoldenGate: Enable supplemental logging for tables upon their recreation

Assuming that minimal supplemental logging is enabled at database level with

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

include following instructions to your table creation script to enable GoldenGate capture all changes from the fresh start of your tables life:
If the table has a primary key:

ALTER TABLE xxx ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

If the table doesn’t have a primary key and have a unique index:

ALTER TABLE xxx ADD SUPPLEMENTAL LOG GROUP (first unique index columns) ALWAYS;

If the table doesn’t have a primary key or a unique index or if it has a manipulation or a filter defined on columns that are not part of the PK:

ALTER TABLE xxx ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

Taken from this forum