Initial Load from Tandem (HP-UX) to AWS Kafka

Working with a customer where we needed to move data from a Tandem (HP-UX Guardian) system up to an AWS EC2 platform that will eventually end up on an AWS MSK Cluster (Kafka).  The concept is pretty straight forward; however, I will say that putting it into practice provided to be a challenge.  The biggest part of this challenge was the initial load process that should be used.  Oracle GoldenGate is the best replication tool on the market, but the one thing that it lags in is the approach of initial load.  

The initial load process for Oracle GoldenGate (both Oracle and Heterogenous) comes in many different options.  The documentation for initial loads have changed over the years as well as the approaches.  With the latest release of Oracle GoldenGate (21c), this hasn’t gotten any better.  But if you want a reference point, you can review the steps in Chapter 11 of the Using Oracle GoldenGate with Oracle Database (here).  

To perform this initial load from a Tandem system to Kafka, we used two different binary sets.  In this case, we were using the following:

  • Oracle GoldenGate 12c (12.2.0.1)(Classic)
  • Oracle GoldenGate 21c (21.5.0.0)(Microservices)

As you may have noticed, the implementation we were working with is a Classic to Microservices architecture.  Oracle GoldenGate (Microservices) is the latest release of Oracle GoldenGate and the direction that Oracle is pushing for data integration strategies.  

tandem2bigdata.png
Below you see the basic concept of this architecture.  The Classic side of the architecture is straight forward when it comes to Oracle GoldenGate.  When the architecture transitions to the EC2 side, Oracle GoldenGate (Microservices) has a few more moving parts that should be managed.  For the purpose of the initial load, the only service that is needed is the Receiver Service (port 16003); more on this shortly.

In the diagram above, we are only going to be discussing the items in red.  These items represent the initial load process and how this process was accomplished between a Oracle GoldenGate (Classic) running on a Tandem (HP-UX Non-Stop) and loading data into Kafka using Oracle GoldenGate (Microservices).  The “direct load” initial load process was followed for this configuration (this approach is not covered in the 21c docs…just an FYI).

Tandem (HP-UX Non-Stop):

First thing that needs to be done is configuring the Initial Load Extract on the Tandem side.  The following parameter file was used:

EXTRACT eil
RMTHOST <host/IP address>, MGRPORT 16003
RMTFILE <rmtfile>
TABLE *.*.*;

This initial load extract looks pretty standard.  We are telling Oracle GoldenGate (Classic) to read all the data from the tables that were in the TABLE line.  Essenstally doing a “SELECT *” and pull all the data.  Then move that data across the network to the remote server and begin writing to the remote file. Oracle GoldenGate (Microservices) begins writing the remote file, but then immediately presents a “broken pipe” error.  This behavior caused a lot of confusion.  After opening an SR and talking with Oracle resources, it was noted that the Tandem default settings for the buffer needed to be changed.

Note: By default, Tandem sets its TCP/IP buffer to 64K.

Apparently, using the default settings on the Tandem didn’t work.  To work around the “broken pipe” issue, we had to set the TCPFlushBytes and TCPBufSize to less than 28K.  This resulted in our extract parameter file being changed:

EXTRACT eil
TCPFlushBytes 27000
TCPBufSize 27000
RMTHOST <host/IP address>, MGRPORT 16003
RMTFILE <rmtfile>
TABLE *.*.*;

By adding the TCP parameters, the extract in Oracle GoldenGate (Classic) is able to successfully make the connection to the Oracle GoldenGate (Microservices): Receiver Service on port 16003 and write data to the remote file.  By shrinking the TCPFlushBytes and the TCPBufSize below 28K, this avoids a known limitation with Oracle GoldenGate and the usage of RMTTASK and RMTFILE, since they both make the same calls.

To build the extract within Oracle GoldenGat (Classic) the following commands were used:

GGSCI> add extract eil, SOURCEISTABLE
EC2 Instance/GoldenGate Microservices

With the RMTFILE being written successfully to the AWS EC2 platform, an initial load replicat can be built to apply the bulk data to Kafka. The parameter file for the replicat is:

REPLICAT ril
TARGETDB LIBFILE libggjava.so SET property=<location for Kafka properties file>
SOURCEDEFS <location for source def file>
MAP *.*.*, TARGET *.*.*;

Now the exact setting for configuring the connection to Kafka are contained within two properties files. These properties files are used to make the connect and what format the data should be provided in.  The first of these files is the Kafka.properties (connection file).   This file sets ups the Kafka Handler and any specific items that are needed for the handler.  The example that we used is similar to the following:

gg.handlerlist=kafkahandler

#The handler properties
gg.handler.kafkahandler.type=kafka
gg.handler.kafkahandler.kafkaProducerConfigFile=kafka.properties
gg.handler.kafkahandler.topicMappingTemplate=${toLowerCase[${tableName}]}
gg.handler.kafkahandler.keyMappingTemplate=${toLowerCase[${tableName}]}
gg.handler.kafkahandler.mode=op
gg.handler.kafkahandler.Format=json

goldengate.userexit.writers=javawriter
javawriter.stats.display=TRUE
javawriter.stats.full=TRUE

gg.log=log4j
gg.log.level=INFO

gg.report.time=30sec

gg.classpath=/app/orabd/opt/DependencyDownloader/dependencies/kafka_2.7.1/*
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
username=“<user>" \
password=“<password>";
security.protocol=SASL_SSL

Next we defined a second properties file that defines the connection to Kafka and the associated brokers.  As well as setting up the conversion of the data formats and performance tuning items.  Our file looked similar to the following:

# address/port of the Kafka broker
bootstrap.servers=<kafka broker servers and ports>

#JSON Converter Settings
key.converter.schemas.enable=false
value.converter.schemas.enable=false
value.serializer = org.apache.kafka.common.serialization.ByteArraySerializer
key.serializer = org.apache.kafka.common.serialization.ByteArraySerializer

#Adjust for performance
buffer.memory=33554432
batch.size=2048
linger.ms=500

After setting the properties file that will be used by Oracle GoldenGate for Big Data to connect to Kafka, we needed to add the replicat to the architecture.  This can be done either from the AdminClient or from the HMTL5 web page through the Administration Service. For command line compatibility, the following steps are done through the AdminClient:

AdminClient> add replicat ril, exttrail <RMTFILE>

AdminClient> start replicat ril

At this stage, after starting the replicat (RIL), we are reading the RMTFILE and performing a “direct load” initial load from Tandem to Kafka.  

With the “direct load” working, we were pushing approximate 5.4 million records in ~45 minutes. This was a single table load.  Depending on the number of tables that need to be loaded, you will need to scale this approach with either more RMTFILEs or multiple replicats.  

Enjoy and happy replicating!

Please follow and like:
Comments
  • Wonderful blog! I found it while searching on Yahoo News.
    Do you have any suggestions on how to get listed in Yahoo News?

    I’ve been trying for a while but I never seem to get there!
    Cheers

  • Howdy! I just wish to give you a big thumbs up for the great information you have
    got right here on this post. I’ll be coming back to your web
    site for more soon.

  • Excellent items from you, man. I’ve be aware your stuff previous to and you’re
    simply extremely wonderful. I actually like what you’ve received here, really like what you’re stating and the way in which
    in which you are saying it. You make it entertaining and you
    still take care of to keep it wise. I cant wait to learn much more from you.
    That is actually a terrific web site.エロ 下着

  • + Не можете выйти на новый финансовый уровень
    + Вечно в поиске себя, не знаете чем заниматься или боитесь идти в свою реализацию
    + В конфликте с родителями, общение холодное или его нет вовсе
    + Чувствуете, что страсть и любовь ушли из отношений
    + Не можете построить долгие отношения, проще без них, партнёры всё время не те
    + Тащите всё на себе, нет времени на жизнь
    + Чувствуете, что страсть и любовь ушли из отношений
    + Не можете построить долгие отношения, проще без них, партнёры всё время не те
    + Испытываете эмоциональное и/или физическое выгорание
    + Много делаете и стараетесь, но результаты уже не приходят так, как раньше
    + Вечно в поиске себя, не знаете чем заниматься или боитесь идти в свою реализацию
    + Испытываете эмоциональное и/или физическое выгорание
    + Одиноки, нет друзей и сложно строить отношения с людьми
    + Вечно в поиске себя, не знаете чем заниматься или боитесь идти в свою реализацию
    + Достигли дна — долги, проблемы в отношениях, зависимости
    https://t.me/s/samorazvitiepsi

  • + Вечно в поиске себя, не знаете чем заниматься или боитесь идти в свою реализацию
    + Тащите всё на себе, нет времени на жизнь
    + Достигли дна — долги, проблемы в отношениях, зависимости
    + На грани развода
    + Испытываете эмоциональное и/или физическое выгорание
    + В конфликте с родителями, общение холодное или его нет вовсе
    + На грани развода
    + Тащите всё на себе, нет времени на жизнь
    + Тащите всё на себе, нет времени на жизнь
    + Тащите всё на себе, нет времени на жизнь
    + Не можете построить долгие отношения, проще без них, партнёры всё время не те
    + Чувствуете, что страсть и любовь ушли из отношений
    + Понимаете, что любовь к себе важна, но не знаете как это и считаете себя скорее умным человеком, чем красивым
    + Много делаете и стараетесь, но результаты уже не приходят так, как раньше
    + Одиноки, нет друзей и сложно строить отношения с людьми
    https://t.me/s/psyholog_online_just_now

  • of course like your website however you have to take a look at the spelling on several of your posts. Many of them are rife with spelling problems and I find it very troublesome to inform the truth however I will definitely come back again.

  • Перевезення хворих за кордон A- Med 🌍 Перевезення хворих Львів • Приватна платна швидка медична допомога ⚕️ Транспортування лежачих, сидячих та важких хворих Україна ☎️ +380680177630 ♥ Кваліфіковане медичне транспортування ➡ Медичний супровід хворих ⏩ Міжнародне перевезення хворих ⏩ Перевезення закордон ➡ Львів ➡ А-Мед • Transportation of patients abroad

    https://a-med.com.ua/

    Транспортування лежачих, сидячих та тяжких хворих Україна ☑️ Міжнародне перевезення хворих ⏩ Приватний медичний транспорт

    #МедичнийТранспортКиїв
    #МедичнийТранспортЛьвів
    #МедичнийТранспортХарків
    #Транспортное
    #МедичнийТранспортДніпро
    #ПеревезенняХворихЛьвів
    #ПеревезенняТяжкихХворихЛьвів
    #ПеревезенняХворихЗакордон

  • ✓ Натяжные потолки Одесса и Одесская область.
    ✓ Ремонт, установка натяжных потолков.
    ✓ Натяжные потолки любых видов индивидуально и под заказ.
    ✓ Натяжные стены в Одессе.
    ✓ Подвесные потолки в Одессе

    Натяжні стелі Одеса – TEKO ⏩ Актуальні поради з натяжних стель ⭐ Натяжні стелі за типом покриття ☑️ Вибираємо натяжні стелі з малюнком ➤ Види барвників для натяжних стель ♥ найпопулярніші теми натяжних стель

    #НатяжныеПотолкиОдесса
    #НатяжныеПотолкиОдессаЦена
    #ПодвесныеПотолкиОдесса
    #НатяжныеСтеныОдесса
    #НатяжныеПотолкиТЕКО
    #НатяжныеПотолкивОдессе
    #НатяжныеПотолкиСделайСам
    #НатяжныеПотолки
    #ПотолкиОдесса
    #НатяжныеПотолкиОдессаЦена
    #КупитьНатяжныеПотолкиОдесса

    Натяжные потолки Одесса – TEKO

    https://www.tecko.in.ua/

  • Hello! Do you know if they make any plugins to help with SEO?

    I’m trying to get my blog to rank for some targeted keywords but I’m not
    seeing very good results. If you know of any please share. Appreciate it!
    You can read similar art here: Eco product

  • 不正回数は計258回、不正総額は103,300円、社員1人あたりの不正回数は最高108回、最低4回。不正利用の総額は104,630円に上った。 JR東海は近鉄に謝罪し、全額を賠償している。
    JR東海では、社員7人が三重県桑名市の桑名駅に通勤する際、ICOCAを使用して近鉄線で無賃乗車を繰り返していた。無賃乗車の期間は2008年8月 – 2010年2月で、社員7人はICOCAで近鉄線に乗り、桑名駅でJR東海線「職務乗車証」を使ってJR東海管理の改札口で下車するか、そのまま職場に出向いていた。

  • Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?

  • 9-10. オリジナルの2021年10月17日時点におけるアーカイブ。.皐月 役)監督:山本政志 ※「聴かれた女」をヒロインの視点から見たアナザー・現在でも現役の橋として使われている歴史の証人。最終更新 2024年5月17日 (金) 22:12
    (日時は個人設定で未設定ならばUTC)。新約聖書の使徒言行録や書簡などの文書からは、預言の活動自体は初期のキリスト教会(初代教会)でも行われ、預言を行う信徒らが当時「預言者」として認められていたことがうかがえる。

  • 2014年より、長距離線で運航中のB777型機(-200ER、-300ER)44機にビジネスクラス、プレミアム・ 2014年2月の東京都知事選では、脱原発を争点に立候補した細川護熙を支援したが、細川は落選した。 2007年(平成19年)9月、安倍が退陣を発表後、「福田さんも小泉政権を支えてくれた人」と福田康夫支持の意向を示した。

  • 磐越自動車道などを管理する東日本高速道路(NEXCO東日本)の東北支社が2011年夏、”震災復旧工事”として発注した東北地方の高速道路12件の工事の入札などにおいて、20の道路舗装会社が談合により落札企業や入札価格を調整した私的独占の禁止及び公正取引の確保に関する法律(独占禁止法)違反(不当な取引制限)容疑で、工事に関わった道路舗装会社(日本道路・

  • これらは関係の緊密な人々(視聴者から公募することもあれば、最初から特定の集団が紹介されることもある)の間の友情やロマンチックな関係の移ろいに焦点を当てる。 「笑点」後楽園ホールでの公開収録中止…音楽グループ「PASCALS」(パスカルズ)メンバーで、テレビドラマや映画音楽などの作品を手掛ける一方、2001年にテレビ東京系『開運!
    ゴーン被告が、逃亡先のレバノンで開いている記者会見を、テレビ東京系列では現在緊急生放送をしています。
    その他の国では当該国籍を持たない人(外国人)が合法的に滞在するためには、日本では一部の例外を除き、出入国管理及び難民認定法(入管法)に定める在留資格のいずれかを持たなければならないこととなっている。

  • “【蒙面惡法】高院裁定蒙面法違憲 政府施加限制超乎合理所需”.

    “香港区議会選、民主派圧勝の見通し 投票率は過去最高”.
    「香港区議会選、民主派が地滑り的勝利 投票率は過去最高」『Reuters』2019年11月25日。 “香港デモ 区議選後最大「80万人」”.
    “香港区議会選、民主派が地滑り的大勝利-投票総数は最高”.
    “香港区議選、民主派が圧勝 全議席の8割超を獲得:朝日新聞デジタル”.

  • 国立公文書館デジタルアーカイブ (1959年12月21日).
    2017年3月24日閲覧。 『元史』巻十三 本紀第十三 世祖十 至元二十一年十月月甲戌の条「甲戌、詔諭行中書省、凡征日本船及長年篙手、并官給鈔增價募之。敕樞密院、向以征日本故、遣五衞軍還家治裝、今悉選壯士、以正月一日到京師。 『元史』巻十三 本紀第十三 世祖十 至元二十二年十月丁卯の条「仍敕習泛海者、募水工至千人者爲千戸、百人爲百戸。

  • 1998年(平成10年)12月31日に特番で『世紀末スペシャル・ その中で「ノストラダムスの大予言」の話題に乗じて世紀末の予言に関するテーマを放送、様々な予言者・ ノストラダムスの大予言』を放送。 1997年(平成9年)に番組内でパネラーの1人が「参議院なんていらない」と参議院不要論とも受け取れる発言をしたことで当時参議院自民党の実力者であった村上正邦から抗議を受ける。

  • 生子神社 – 毎年9月19日に「泣き相撲」が行われる。日本経済新聞 電子版 (2019年10月11日).

    2019年10月12日閲覧。 NHK大河ドラマ「義経」のロケ地(鞍馬寺として)。県指定天然記念物の加蘇山の千本かつら、市指定天然記念物の加蘇山神社の杉がある。上記加蘇山神社とともに国史見在社の論社とされる。 7月2日 – 三菱電機は鉄道用装置の空調装置での不正検査は35年以上が続いていたことが発覚し、杉山武史社長が引責辞任。

Leave a Reply

Your email address will not be published. Required fields are marked *

Enquire now

Give us a call or fill in the form below and we will contact you. We endeavor to answer all inquiries within 24 hours on business days.