Skip to Main Content

Analytics Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ODI 11g XML reverse engineer with remote agent problem

2825501Jul 28 2012 — edited Jul 28 2012
Hello !

Today I started to reverse engineer a XML model from file. The file is simple, for those familiar with Security in Hyperion Planning (replaced actual group and member name with dummy for forum)

file: security.xml

<?xml version="1.0" encoding="UTF-8" ?>
<acls>
<acl>
<name>GROUP_NAME_HERE</name>
<objectName>MEMBER_NAME_HERE</objectName>
<objectType>SL_DIMENSION</objectType>
<accessMode>READWRITE</accessMode>
<flag>@IDESCENDANTS</flag>
<isUser>N</isUser>
</acl>
</acls>

When creating the data server I use:

driver: com.sunopsis.jdbc.driver.xml.SnpsXmlDriver
jdbc url:jdbc:snps:xml?f=/home/oracle/security.xml&s=SECURITY_SCHEMA&dp_driver=oracle.jdbc.driver.OracleDriver&dp_url=jdbc:oracle:thin:@<serverinfo>&dp_user=SECURITY_XML&dp_password=<encrypted password>&dp_schema=SECURITY_XML

When I test the connection against the remote agent it verifies sucessfully and creates the schema objects on SECURITY_XML schema in the DB. Also creates the security.dtd file in the same location as the security.xml fil on remote server.

In the remote agent console I see this warning:

WARNING ODI-40859: Could not read the file to get its associated schema because an IOException occurred saying no protocol: /home/oracle/security.xml

because of that warning I cannot select the schema from dropdown in Physical Schema definition, so I type in by hand SECURITY_SCHEMA.

Next is the model creation. I create the model and define the logical schema that is used for the corresponding physical schema and choose the XML technology. On reverse engineer tab I choose custom and select my own remote agent, but can not reverse engineer because i dont know the RKM and i put the radiobutton back to Standard. I save it and go to selective reverse engineer tab and when I click on the objects to reverse engineer I get the following error:

ava.sql.SQLException: ODI-40844: Could not generate the DTD because the file could not be created. Verify that you have write permission in the directory.
at com.sunopsis.jdbc.driver.xml.SnpsXmlSchema.generateDTD(SnpsXmlSchema.java:880)
at com.sunopsis.jdbc.driver.xml.SnpsXmlSchema.<init>(SnpsXmlSchema.java:511)
at com.sunopsis.jdbc.driver.xml.SnpsXmlSchemaManager.createNewSchema(SnpsXmlSchemaManager.java:294)
at com.sunopsis.jdbc.driver.xml.SnpsXmlSchemaManager.getSchemaFromProperties(SnpsXmlSchemaManager.java:272)
at com.sunopsis.jdbc.driver.xml.SnpsXmlDriver.connect(SnpsXmlDriver.java:110)
at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:409)
at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:385)
at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:352)
at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:331)
at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.doGetConnection(LoginTimeoutDatasourceAdapter.java:99)
at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.getConnection(LoginTimeoutDatasourceAdapter.java:62)
at oracle.odi.core.datasource.dwgobject.support.OnConnectOnDisconnectDataSourceAdapter.getConnection(OnConnectOnDisconnectDataSourceAdapter.java:74)
at com.sunopsis.sql.SnpsConnection.testConnection(SnpsConnection.java:1121)
at com.sunopsis.dwg.reverse.Reverse.getLocalConnection(Reverse.java:945)
at com.sunopsis.dwg.reverse.Reverse.getLocalConnection(Reverse.java:994)
at com.sunopsis.dwg.reverse.Reverse.getLocalConnection(Reverse.java:959)
at com.sunopsis.dwg.reverse.Reverse.getNewTables(Reverse.java:1783)
at com.sunopsis.graphical.frame.edit.EditFrameSnpModel.reinitializeTable(EditFrameSnpModel.java:2886)
at com.sunopsis.graphical.frame.edit.EditFrameSnpModel.jCheckBoxSelectTable_ActionEvents(EditFrameSnpModel.java:2763)
at com.sunopsis.graphical.frame.edit.EditFrameSnpModel$IvjEventHandler.actionPerformed(EditFrameSnpModel.java:297)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2319)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:291)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at oracle.bali.ewt.olaf2.OracleButtonListener.mouseReleased(OracleButtonListener.java:44)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3268)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2042)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2101)
at java.awt.Component.dispatchEvent(Component.java:4483)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2479)
at java.awt.Component.dispatchEvent(Component.java:4483)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:604)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:618)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:175)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:170)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:162)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Again ... if I use everything on local, XML file on local etc it works fine and it reverses without a problem (also the schema apears in the drop down of the Physical Shcema ...).

What am I missing here ? Any help would be much apreciated ! The question would be, how to make ODI reverse engineer XML on the remote agent.

Cheers!
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 25 2012
Added on Jul 28 2012
1 comment
2,030 views