# ERROR : Data sync from oracle to solace with golden gate via jms handler

**URL:** <https://community.solace.com/t/error-data-sync-from-oracle-to-solace-with-golden-gate-via-jms-handler/699>\
**Category:** Connectors & Integrations\
**Tags:** jms\
**Created:** [April 20, 2021, 8:57am UTC](https://community.solace.com/t/error-data-sync-from-oracle-to-solace-with-golden-gate-via-jms-handler/699 "2021-04-20T08:57:59Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Owen](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/owen/32/562_2.png) [@Owen](https://community.solace.com/u/Owen)\
**Post date:** [April 20, 2021, 8:57am UTC](https://community.solace.com/t/error-data-sync-from-oracle-to-solace-with-golden-gate-via-jms-handler/699/1 "2021-04-20T08:57:59Z")

</div>

\*Hi Experts,

I am new on solace and using oracle golden gate for bigdata JMS handler to sync message from oracle database to solace (docker)

I can receive message though the _try me!_ module on topic `topic/solace/q1`

but after starting ogg replication process then met below `can not found topic error`, please kindly help suggestion.\*

my properties configuration

```auto
gg.handlerlist=oggjms

#jndi setting
java.naming.provider.url=smf://132.3.32.2:55555
java.naming.factory.initial=com.solacesystems.jndi.SolJNDIInitialContextFactory
java.naming.security.principal=default@default
java.naming.security.credentials=default

#OGG JMS handler
gg.handler.oggjms.type=jms
gg.handler.oggjms.useJndi=true
gg.handler.oggjms.destinationType=topic
gg.handler.oggjms.destination=topic/solace/q1
gg.handler.oggjms.connectionFactory=/jms/cf/default
gg.handler.oggjms.localTX=false
gg.handler.oggjms.persistent=true
gg.handler.oggjms.mode=op
gg.handler.oggjms.format=json

gg.log.level=debug
gg.log=log4j

gg.classpath=/home/opc/ogg4bd/soljmslib/*

```

### error message

```auto
INFO: Channel Closed (smfclient 5)
=ERROR 2021-04-20 08:35:51.000287 [main] - Problem sending JMS message via handler='oggjms
javax.naming.NameNotFoundException: JNDI lookup of "topic/solace/q1" failed - not found
        at com.solacesystems.jndi.SolJNDIInitialContextFactory$SolJNDIInitialContextImpl.lookup(SolJNDIInitialContextFactory.java:241) ~[sol-jms-10.10.0.jar:?]
        at javax.naming.InitialContext.lookup(InitialContext.java:417) ~[?:1.8.0_192]
        at javax.naming.InitialContext.lookup(InitialContext.java:417) ~[?:1.8.0_192]
        at oracle.goldengate.messaging.JMSSender.getProducer(JMSSender.java:716) ~[ggjms-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.messaging.JMSSender.sendTextMessage(JMSSender.java:550) ~[ggjms-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler.send(JMSNgFormattedHandler.java:931) [ggjms-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler.deliver(JMSNgFormattedHandler.java:824) [ggjms-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler$RetryDelivery.action(JMSNgFormattedHandler.java:816) [ggjms-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.util.retry.RetryAction.execute(RetryAction.java:49) [ggutil-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler.deliverMessage(JMSNgFormattedHandler.java:786) [ggjms-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler.operationAdded(JMSNgFormattedHandler.java:729) [ggjms-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.datasource.DsEventManager$4.send(DsEventManager.java:450) [ggdbutil-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.datasource.DsEventManager.distributeEvent(DsEventManager.java:115) [ggdbutil-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.datasource.DsEventManager.fireOperationAdded(DsEventManager.java:459) [ggdbutil-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.datasource.AbstractDataSource.fireOperationAdded(AbstractDataSource.java:482) [ggdbutil-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.datasource.UserExitDataSource.addOperationToTransactionAndFireEvent(UserExitDataSource.java:2329) [ggdbutil-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.datasource.UserExitDataSource.createOperation(UserExitDataSource.java:1636) [ggdbutil-19.1.0.0.5.007.jar:19.1.0.0.5.007]
        at oracle.goldengate.datasource.UserExitDataSource.createOperation(UserExitDataSource.java:1393) [ggdbutil-19.1.0.0.5.007.jar:19.1.0.0.5.007]
=ERROR 2021-04-20 08:35:51.000288 [main] - JMSNgHandler faild with exception oracle.goldengate.util.GGException: Exception while attempting to deliver message: JNDI lookup of "topic/solace/q1" failed - not found
Apr 20, 2021 8:35:51 AM com.solacesystems.jndi.SolJNDIInitialContextFactory list
SEVERE: list is not supported
java.lang.Exception
        at com.solacesystems.jndi.SolJNDIInitialContextFactory$SolJNDIInitialContextImpl.list(SolJNDIInitialContextFactory.java:394)
        at javax.naming.InitialContext.list(InitialContext.java:461)
        at javax.naming.InitialContext.list(InitialContext.java:461)
        at oracle.goldengate.messaging.JMSSender.printInitialContext(JMSSender.java:427)
        at oracle.goldengate.messaging.JMSSender.getInitialContext(JMSSender.java:285)
        at oracle.goldengate.messaging.JMSSender.initialize(JMSSender.java:407)
        at oracle.goldengate.messaging.JMSSender.getTextMessage(JMSSender.java:506)

```

---

<div class="post-metadata">

**Author:** ![amackenzie](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/amackenzie/32/1168_2.png) [@amackenzie](https://community.solace.com/u/amackenzie)\
**Post date:** [April 20, 2021, 10:46am UTC](https://community.solace.com/t/error-data-sync-from-oracle-to-solace-with-golden-gate-via-jms-handler/699/2 "2021-04-20T10:46:28Z")

</div>

You need to add your Topic to the JNDI registry as JMS doesn’t know how to find the endpoint without looking it up.

The following should help:

> **[Solace JNDI Objects](https://docs.solace.com/API/Solace-JMS-API/Managing-Solace-JNDI-Objects.htm)**

---

<div class="post-metadata">

**Author:** ![swenhelge](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/swenhelge/32/2201_2.png) [@swenhelge](https://community.solace.com/u/swenhelge)\
**Post date:** [April 20, 2021, 12:30pm UTC](https://community.solace.com/t/error-data-sync-from-oracle-to-solace-with-golden-gate-via-jms-handler/699/3 "2021-04-20T12:30:07Z")

</div>

There also seems to be an option to avoid JNDI lookups in the Oracle GG JMS adapter … that may mean you can avoid setting up the JNDI entries - `gg.handler.name.useJndi`

“Set to false, then JNDI is not used to configure the JMS client. Instead, factories and connections are explicitly constructed.”

> **[Using Oracle GoldenGate for Big Data](https://docs.oracle.com/en/middleware/goldengate/big-data/19.1/gadbd/java-message-service-jms.html)**
>
> The Java Message Service (JMS) Handler allows operations from a trail file to be formatted in messages, and then published to JMS providers like Oracle Weblogic Server, Websphere, and ActiveMQ.

---

<div class="post-metadata">

**Author:** ![Owen](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/owen/32/562_2.png) [@Owen](https://community.solace.com/u/Owen)\
**Post date:** [April 21, 2021, 9:45am UTC](https://community.solace.com/t/error-data-sync-from-oracle-to-solace-with-golden-gate-via-jms-handler/699/4 "2021-04-21T09:45:25Z")

</div>

thanks @amackenzie@swenhelge  
the “can not found topic error” has be fixed after configure JNDI registry and solace can receive message from ogg. and keep `gg.handler.oggjms.useJndi=true`  
but another error “SEVERE: list is not supported” still there. what cause this issue and how to fix it . though this not impact push message so far

```auto
Apr 21, 2021 9:27:14 AM com.solacesystems.jndi.SolJNDIInitialContextFactory list
SEVERE: list is not supported
java.lang.Exception
        at com.solacesystems.jndi.SolJNDIInitialContextFactory$SolJNDIInitialContextImpl.list(SolJNDIInitialContextFactory.java:394)
        at javax.naming.InitialContext.list(InitialContext.java:461)
        at javax.naming.InitialContext.list(InitialContext.java:461)
        at oracle.goldengate.messaging.JMSSender.printInitialContext(JMSSender.java:427)
        at oracle.goldengate.messaging.JMSSender.getInitialContext(JMSSender.java:285)
        at oracle.goldengate.messaging.JMSSender.initialize(JMSSender.java:407)
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler.initJmsSender(JMSNgFormattedHandler.java:945)
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler.init(JMSNgFormattedHandler.java:651)
        at oracle.goldengate.datasource.AbstractDataSource.addDataSourceListener(AbstractDataSource.java:592)
        at oracle.goldengate.datasource.factory.DataSourceFactory.getDataSource(DataSourceFactory.java:161)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
        

```

---

<div class="post-metadata">

**Author:** ![Owen](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/owen/32/562_2.png) [@Owen](https://community.solace.com/u/Owen)\
**Post date:** [April 21, 2021, 3:13pm UTC](https://community.solace.com/t/error-data-sync-from-oracle-to-solace-with-golden-gate-via-jms-handler/699/5 "2021-04-21T15:13:32Z")

</div>

thanks @amackenzie@swenhelge  
the “can not found topic error” has be fixed after configure JNDI registry and solace can receive message from ogg. and keep `gg.handler.oggjms.useJndi=true`  
but another error “SEVERE: list is not supported” still there. what cause this issue and how to fix it . though this not impact push message so far

```auto
Apr 21, 2021 9:27:14 AM com.solacesystems.jndi.SolJNDIInitialContextFactory list
SEVERE: list is not supported
java.lang.Exception
        at com.solacesystems.jndi.SolJNDIInitialContextFactory$SolJNDIInitialContextImpl.list(SolJNDIInitialContextFactory.java:394)
        at javax.naming.InitialContext.list(InitialContext.java:461)
        at javax.naming.InitialContext.list(InitialContext.java:461)
        at oracle.goldengate.messaging.JMSSender.printInitialContext(JMSSender.java:427)
        at oracle.goldengate.messaging.JMSSender.getInitialContext(JMSSender.java:285)
        at oracle.goldengate.messaging.JMSSender.initialize(JMSSender.java:407)
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler.initJmsSender(JMSNgFormattedHandler.java:945)
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler.init(JMSNgFormattedHandler.java:651)
        at oracle.goldengate.datasource.AbstractDataSource.addDataSourceListener(AbstractDataSource.java:592)
        at oracle.goldengate.datasource.factory.DataSourceFactory.getDataSource(DataSourceFactory.java:161)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBea
nFactory.java:1178)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.ja
va:1072)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511
)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1080)
        at oracle.goldengate.datasource.DataSourceLauncher.<init>(DataSourceLauncher.java:168)
        at oracle.goldengate.datasource.UserExitMain.main(UserExitMain.java:124)

```

---

<div class="post-metadata">

**Author:** ![Owen](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/owen/32/562_2.png) [@Owen](https://community.solace.com/u/Owen)\
**Post date:** [April 21, 2021, 3:13pm UTC](https://community.solace.com/t/error-data-sync-from-oracle-to-solace-with-golden-gate-via-jms-handler/699/6 "2021-04-21T15:13:32Z")

</div>

thanks @amackenzie@swenhelge  
the “can not found topic error” has be fixed after configure JNDI registry and solace can receive message from ogg. and keep `gg.handler.oggjms.useJndi=true`  
but another error “SEVERE: list is not supported” still there. what cause this issue and how to fix it . though this not impact push message so far

```auto
Apr 21, 2021 9:27:14 AM com.solacesystems.jndi.SolJNDIInitialContextFactory list
SEVERE: list is not supported
java.lang.Exception
        at com.solacesystems.jndi.SolJNDIInitialContextFactory$SolJNDIInitialContextImpl.list(SolJNDIInitialContextFactory.java:394)
        at javax.naming.InitialContext.list(InitialContext.java:461)
        at javax.naming.InitialContext.list(InitialContext.java:461)
        at oracle.goldengate.messaging.JMSSender.printInitialContext(JMSSender.java:427)
        at oracle.goldengate.messaging.JMSSender.getInitialContext(JMSSender.java:285)
        at oracle.goldengate.messaging.JMSSender.initialize(JMSSender.java:407)
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler.initJmsSender(JMSNgFormattedHandler.java:945)
        at oracle.goldengate.messaging.handler.JMSNgFormattedHandler.init(JMSNgFormattedHandler.java:651)
        at oracle.goldengate.datasource.AbstractDataSource.addDataSourceListener(AbstractDataSource.java:592)
        at oracle.goldengate.datasource.factory.DataSourceFactory.getDataSource(DataSourceFactory.java:161)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBea
nFactory.java:1178)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.ja
va:1072)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511
)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1080)
        at oracle.goldengate.datasource.DataSourceLauncher.<init>(DataSourceLauncher.java:168)
        at oracle.goldengate.datasource.UserExitMain.main(UserExitMain.java:124)

```

---

<div class="post-metadata">

**Author:** ![amackenzie](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/amackenzie/32/1168_2.png) [@amackenzie](https://community.solace.com/u/amackenzie)\
**Post date:** [April 21, 2021, 3:21pm UTC](https://community.solace.com/t/error-data-sync-from-oracle-to-solace-with-golden-gate-via-jms-handler/699/7 "2021-04-21T15:21:16Z")

</div>

Hi. I am looking into this exception but it looks to me like there is a JNDI API (list()) that we don’t support and throw when we see it. The JNDI built into the Solace broker is tuned to the needs of using messaging on the brokers. Not all JNDI features may be implemented.

In looking at this method from the JNDI spec, I wonder why Oracle GG needs to list all classes from the registry anyway. The JMSSender.printInitialContext() seems to be the culprit. I am not sure why it would need a list of classes when you have already told it what Topic is being published to in the config.

I will update this thread when I get feedback from our dev team but it looks like it’s working for you and this is only an issue for your logs.

---

<div class="post-metadata">

**Author:** ![Owen](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/owen/32/562_2.png) [@Owen](https://community.solace.com/u/Owen)\
**Post date:** [April 22, 2021, 1:27am UTC](https://community.solace.com/t/error-data-sync-from-oracle-to-solace-with-golden-gate-via-jms-handler/699/8 "2021-04-22T01:27:29Z")

</div>

Hi @amackenzie thanks for update.  
I am referencing this oracle doc [Using the Java Message Service Handler](https://docs.oracle.com/en/middleware/goldengate/big-data/19.1/gadbd/using-jms-handler.html#GUID-66A87483-8428-4B13-B043-F6ABFD74E7D3) .BTW I also tried ActiveMQ with OGG JMS handler there is no such similar error.
