One Star

Generic JDBC Connection String

Hi - I'm trying to profile some data in Red Brick. I've installed the RB RDBC driver and can select it in the appropriate drop-downs.
However, when I try to connect to a db that is accessible via ODBC I get an error about the locale settings - "**ERROR** 1800. Locale value null."
The connection string as it stands currently is as follows:
jdbc:rbwSmiley Tonguerotocol:1.0.0.243:5050/natmags_db/
Any advice anyone?
Thanks in advance,
Will S-J

7 REPLIES
Employee

Re: Generic JDBC Connection String

Hi Will,
we never tried to connect to Red Brick with Talend Open Profiler yet.
Your ODBC issue may be related to 7532
Could you check whether you get the same kind of error? (see http://www.talendforge.org/wiki/doku.php?id=bugtracker#attach_the_error_log_to_the_bugtracker to proceed)
Do you know whether a JDBC driver exists for this database? If yes, you could try it.
One Star

Re: Generic JDBC Connection String

Hi S,
I can confirm that I get a different error message as I am using a different JDBC driver (from the IBM RedBrick install media) - pretty sure there is just something additional I need to declare in the connection string.
The error returned is as follows:
2009-06-03 13:22:44,499 ERROR org.talend.dataprofiler.core.ui.wizard.database.DatabaseWizardPage - java.sql.SQLException: ** ERROR ** (1800) Locale value
java.sql.SQLException: ** ERROR ** (1800) Locale value null.MS1252 contains an invalid language specification.
at redbrick.protocol.SfexResult.getSfexResultErrors(SfexResult.java:218)
at redbrick.jdbc.RBWConnection.examineSfexResult(RBWConnection.java:958)
at redbrick.jdbc.RBWConnection.getServerResponse(RBWConnection.java:930)
at redbrick.jdbc.RBWConnection.(RBWConnection.java:209)
at redbrick.jdbc.RBWDriver.connect(RBWDriver.java:283)
at org.talend.cwm.db.connection.ConnectionUtils.createConnectionWithTimeout(Unknown Source)
at org.talend.dataprofiler.core.ui.wizard.database.DatabaseWizardPage.checkDBConnection(Unknown Source)
at org.talend.dataprofiler.core.ui.wizard.database.DatabaseWizardPage.access$6(Unknown Source)
at org.talend.dataprofiler.core.ui.wizard.database.DatabaseWizardPage$5.widgetSelected(Unknown Source)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.talend.dataprofiler.core.ui.action.actions.CreateConnectionAction.run(Unknown Source)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:500)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.talend.dataprofiler.rcp.intro.Application.start(Unknown Source)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
Of interested with I can confirm that if I try to use the same driver as the previous poster used in 7532 I get the same error 'Unhandled event loop error'.
Any ideas what to try next?
Thanks in advance,
Will
Employee

Re: Generic JDBC Connection String

The best thing to do is to declare another bug issue on our bugtracker with all the information that you can provide such as the driver filename, version, database version, your error log, the connection string that you entered...
We do not have access to this database, but it's worth creating a bugtracker.
Do you know whether a demo version of this database is available?
One Star

Re: Generic JDBC Connection String

Hi - I've had some feedback from IBM as below - looks like they *may* be able to give you a development copy of RedBrick - if you are interested let me know and I'll pass on the name of the contact who suggested it via PM.
In the meantime, depending on the further results from IBM I'll raise a bug shortly...
---
Hi Will,
I was able to repro your error and tried another connection string that should have worked...
jdbc:rbwSmiley Tonguerotocol:IBM-A8732864D97:6308/aroma/?UID=system&PWD=manager&CLIENT_LOCAL=en_US
I know that your DB isn't a US locale but just wanted to see if I could get a different error. If you try this...
jdbc:rbwSmiley Tonguerotocol:IBM-A8732864D97:6308/aroma/?UID=system&PWD=manager&CLIENT_LOCAL=xxxx
...you get the same error and if you try this...
jdbc:rbwSmiley Tonguerotocol:IBM-A8732864D97:6308/aroma/?UID=system&PWD=manager&CLIENT_LOCAL=
...you get...

I think the error above proves there is some sort of URL parsing going on within Talend but it is not picking up our client locale from the connection URL.
I also edited the rbw.config file and changed that locale but did not have any luck. Let me see if I can get some input from development on this
---
Thanks - Will
Employee

Re: Generic JDBC Connection String

Thanks for your feedback, Will.
Red Brick is not a very common database and I don't know yet whether we can have some time to work on it. I'll come back to you in case we can spend some time to install and debug TOP with this database.
Meanwhile, I'll check with the development team whether there is some specific parsing of the jdbc url.
One Star

Re: Generic JDBC Connection String

Support,
Just had some further feedback from IBM on this....
First it appears that the RedBrick JDBC driver is a v2.0 driver and opposed to v3.0 which your product appears to require??? IBM have a 3.0 compliant JDBC driver in development and when testing this they have hit a second issue which is that RedBirck does not follow the apparently require structure of organising things in a 'Schema->Database->Table' hierarchy.
I'm guessing the same problem might befall the Talend OS application when trying to import metadata into that?
Please find below the full response from IBM - I think we've proved that, for now using Talend for profiling is going to be a non-starter for us in the immediate future.
Regards,
W.
- - -
Hello Will,
I have done some more work with development on our PMR. We have coded the getDatabaseMinorVersion() call and are able to successfully connect to Red Brick now. It seems that the Talend tool requires a database with a Schema->Database->Table hierarchy. This is shown by the fact it utilizes the getSchemas() JDBC method. Red Brick's architecture follows the Database->Table hierarchy. When I try and open a data profile it fails with the following error.
java.sql.SQLException: ** Error ** (11901) : Driver does not support the function getSchemas.
I have a couple of questions...
1. Does the functionality you are looking for out of the Talend tool require the call to getSchemas() be successful?
2. Does Talend have other databases that it works with that has a similar non-schema architecture and if so, is there a way to get around this mismatch via coding to work with Talend somehow?
I am hoping that you may get some answers from your enquiry with Talend.
I was also doing some investigation online and found someone that has the identical issues we are now faced with.
http://www.sqlpower.ca/forum/posts/list/2295.page
It seems their vendor was able to write a wrapper to get around the limitations of our architecture.
I have attached the debug non-QAed version of our driver for you to try for testing purposes only.
Please let me know if you have any questions about this and if Talend is able to help you or offer any suggestions.
Best Regards,
Jason Toso
Advanced Technical Support (Red Brick, Cloudscape)
IBM Data Management Solutions
Email: jtoso@us.ibm.com
- - -
Employee

Re: Generic JDBC Connection String

Hi Will,
thanks a lot for these information.
In TOP, the current expected structure of a database is "catalog/schema/tables" or "catalog/tables" or "schema/tables".
I'll send you a patch by email that your contact at IBM could test.