Topic
  • 11 replies
  • Latest Post - ‏2011-05-02T23:14:24Z by SystemAdmin
gizi
gizi
7 Posts

Pinned topic Custom Connector for SQL - is it supported?

‏2011-03-31T15:08:01Z |
We have the requirement of federating content from MS SQL server. But there is no out of the box connector for MS SQL server provided. Only DB2 and Oracle connectors are provided out of the box. So we are planning to develop the custom connector for MS SQL server. The doubt here is, is it possible to develop custom connector for MS SQL server or there might be some issues with it. As the IBM provides connectors for DB2 and for Oracle but not for MS SQL. Any specific reasoning behind this. Is there something different with MS SQL server. Before getting into the custom connector development for MS SQL server I thought of posting this query here.
Please help me out with this issue. Any thoughts on this are highly appreciated
Updated on 2011-05-02T23:14:24Z at 2011-05-02T23:14:24Z by SystemAdmin
  • gizi
    gizi
    7 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-03-31T15:10:29Z  
    Just forgot to mention, the version of ICI we are using is 8.5.1 Fix pack 2 with intermin packs 1&2.
  • SystemAdmin
    SystemAdmin
    254 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-04-05T23:58:00Z  
    • gizi
    • ‏2011-03-31T15:10:29Z
    Just forgot to mention, the version of ICI we are using is 8.5.1 Fix pack 2 with intermin packs 1&2.
    Hi Gizi,
    Are you referring to the RDBMS connector? ICI does not have specific DB2 or Oracle connectors though we do have an RDBMS connector that supports relational databases as long as they use JDBC. I haven't tried using RDBMS to connect to MySQL but it should work just as it does with other relational databases. See details of the RDBMS connector in the InfoCenter ->

    http://publib.boulder.ibm.com/infocenter/ce/v8r5/index.jsp?topic=/com.ibm.discovery.ci.conn.doc/cdncr097.htm
  • gizi
    gizi
    7 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-04-06T06:17:18Z  
    Hi Gizi,
    Are you referring to the RDBMS connector? ICI does not have specific DB2 or Oracle connectors though we do have an RDBMS connector that supports relational databases as long as they use JDBC. I haven't tried using RDBMS to connect to MySQL but it should work just as it does with other relational databases. See details of the RDBMS connector in the InfoCenter ->

    http://publib.boulder.ibm.com/infocenter/ce/v8r5/index.jsp?topic=/com.ibm.discovery.ci.conn.doc/cdncr097.htm
    Hi keke2,

    Thanks for replying to my query.
    Yes, you are correct the ICI does provide the generic connector for RDBMS. But ICI system requirements for RDMS connector says, it supports DB2 & Oracle. But doens't mention about Microsoft SQL server. Hence aries the doubt whether it would support MS SQL RDBMS or not.

    PFB the list of ICI system requirements for RDMS connector:

    Relational Database Management System connector Notes

    IBM DB2 Universal Database, Version 8.2
    IBM DB2 Universal Database Version 9.1
    IBM DB2 Universal Database Version 9.5
    Δ IBM DB2 Universal Database Version 9.7
    IBM WebSphere Federation Server, Version 9.1 With IBM DB2 Version 9.1
    IBM WebSphere Federation Server, Version 9.5 With IBM DB2 Version 9.5
    Oracle 10g Support for Oracle databases does not include support for the Oracle Exadata platform
    Oracle 11g Support for Oracle databases does not include support for the Oracle Exadata platform
    Δ Oracle 11g R2 Support for Oracle databases does not include support for the Oracle Exadata platform
    IBM Informix®, Version 10
    IBM Informix, Version 11
    Δ IBM Informix, Version 11.5

    You can access the original page at the link https://www-304.ibm.com/support/docview.wss?rs=86&uid=swg27015930.

    Any thoughts on this.
  • SystemAdmin
    SystemAdmin
    254 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-04-08T02:46:12Z  
    Hi Gizi,
    You're correct. I only looked in the InfoCenter and was not aware that our support matrix did not include MySQL databases. In any case, I am not aware of any particular reason that MySQL is not supported, it could just be that we never tested on it. I would first try to use the RDBMS connector to connect to MySql. If that doesn't work, then you can look into adding a custom connector. You could even subclass the RDBMS connector and override methods as needed/supported.

    Thanks.
    Kechy
  • gizi
    gizi
    7 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-04-11T06:49:23Z  
    Hi Gizi,
    You're correct. I only looked in the InfoCenter and was not aware that our support matrix did not include MySQL databases. In any case, I am not aware of any particular reason that MySQL is not supported, it could just be that we never tested on it. I would first try to use the RDBMS connector to connect to MySql. If that doesn't work, then you can look into adding a custom connector. You could even subclass the RDBMS connector and override methods as needed/supported.

    Thanks.
    Kechy
    Hi Kechy,

    Thanks for your reply.
    I tried with configuring RDBMS connector for MS SQL. The connector is successfully configured as well as I can browse through the DB table data using Content Integrator Swing Browser Sample application.
    Now When I try to configure federation rules under CFS Federation Admin webapplication there its failing. The exception encountered is "FullTextSeachCriteria" Javascript field. It says either the object is null or not defined. Any thoughts behind this error?
    Other than this my observation for custom connector development is you cann't cusomtize the connector. The reason being for out of the box connector factory class, the bridgefactory variable is decalred as final i.e. it can't be override to plug-in your custom factory implemenation and hence hinders the customizatin of OOTB connectors like RDBMS, NTFS or any other out of the box connector.
    I may be missing something here but I tried everything and stuck at this place only when it comes to plug-in the custom connector implementation bridge class with content integrator. The bridge factory class's bridgefactory variable is final and cannt be overriden. Any thoughts on this.
    I would highly appreiciate if you could share your understanding on customizing connectors.

    Thanks in advance.

    Regards,
    Gizi
  • SystemAdmin
    SystemAdmin
    254 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-04-12T03:12:09Z  
    • gizi
    • ‏2011-04-11T06:49:23Z
    Hi Kechy,

    Thanks for your reply.
    I tried with configuring RDBMS connector for MS SQL. The connector is successfully configured as well as I can browse through the DB table data using Content Integrator Swing Browser Sample application.
    Now When I try to configure federation rules under CFS Federation Admin webapplication there its failing. The exception encountered is "FullTextSeachCriteria" Javascript field. It says either the object is null or not defined. Any thoughts behind this error?
    Other than this my observation for custom connector development is you cann't cusomtize the connector. The reason being for out of the box connector factory class, the bridgefactory variable is decalred as final i.e. it can't be override to plug-in your custom factory implemenation and hence hinders the customizatin of OOTB connectors like RDBMS, NTFS or any other out of the box connector.
    I may be missing something here but I tried everything and stuck at this place only when it comes to plug-in the custom connector implementation bridge class with content integrator. The bridge factory class's bridgefactory variable is final and cannt be overriden. Any thoughts on this.
    I would highly appreiciate if you could share your understanding on customizing connectors.

    Thanks in advance.

    Regards,
    Gizi
    Hi Gizi,
    It sounds like you have to design your RDBMS connector. You'll need to right-click on the connector in the admin tool, and select "Design RDBMS Connector". You'll need to specify the item class, and the corresponding Entity name from your database configuration. If you don't find instructions on this in the IC, please contact support.

    Could you specify which class has the bridgeFactory object as final? I took a look at the RDBMSConnectorFactory and I was able to subclass this and override some of the methods. Were you not able to do this? I believe this should be sufficient to customize the repository profile for the connector. Let me know if you're not able to do this.

    Thanks.
  • gizi
    gizi
    7 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-04-12T07:02:09Z  
    Hi Gizi,
    It sounds like you have to design your RDBMS connector. You'll need to right-click on the connector in the admin tool, and select "Design RDBMS Connector". You'll need to specify the item class, and the corresponding Entity name from your database configuration. If you don't find instructions on this in the IC, please contact support.

    Could you specify which class has the bridgeFactory object as final? I took a look at the RDBMSConnectorFactory and I was able to subclass this and override some of the methods. Were you not able to do this? I believe this should be sufficient to customize the repository profile for the connector. Let me know if you're not able to do this.

    Thanks.
    Hi Kechy,

    The configuration/designing of RDBMS connector using Content Integrator Admin console is fine. I have done that. I have defined the connection parameters there as well as mapped the database entities to itemclasses. That part is fine and inline with ICI documentation avaiable at IBM infocenter. But this connector fails while defining federation rules under CFS FedAdmin webapplication. I already shared the error in my previous post. The error is with JS script variable "FullTextCriteria" is either Null or not defined. We have already raised this issue with IBM and hope to get the response soon.

    On the other front, for customizing the connector first the connector bridge implementation is to be overriden. That as you mentioned can be done by overriding the methods as per requirement. Once the connector bridge implementation is done. This class full qualified path is mentioned in BridgeConfigFactory class. Now Second step is to Override the BridgeConfigFactory class. For RDBMS connector this class is RDBMSConfigFactory. In this class we have change the value of variable FACTORY_CLASS & COMPONENT_ID and provide the full qualified class name of the custom connector implementation class & connector customized factory class. But as these variables are final hence can't be overriden and values cannt be changed. Hence even though we can cusotmize the connector but we cannt plug this to bridgeconfigfactory and hence ICI connector will not identify this custom connector.
    PFA the screen shot of the RDBMSConfigFactory class. I have highlighted the final variables.

    Regards,
    Gizi
  • SystemAdmin
    SystemAdmin
    254 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-04-19T03:14:11Z  
    • gizi
    • ‏2011-04-12T07:02:09Z
    Hi Kechy,

    The configuration/designing of RDBMS connector using Content Integrator Admin console is fine. I have done that. I have defined the connection parameters there as well as mapped the database entities to itemclasses. That part is fine and inline with ICI documentation avaiable at IBM infocenter. But this connector fails while defining federation rules under CFS FedAdmin webapplication. I already shared the error in my previous post. The error is with JS script variable "FullTextCriteria" is either Null or not defined. We have already raised this issue with IBM and hope to get the response soon.

    On the other front, for customizing the connector first the connector bridge implementation is to be overriden. That as you mentioned can be done by overriding the methods as per requirement. Once the connector bridge implementation is done. This class full qualified path is mentioned in BridgeConfigFactory class. Now Second step is to Override the BridgeConfigFactory class. For RDBMS connector this class is RDBMSConfigFactory. In this class we have change the value of variable FACTORY_CLASS & COMPONENT_ID and provide the full qualified class name of the custom connector implementation class & connector customized factory class. But as these variables are final hence can't be overriden and values cannt be changed. Hence even though we can cusotmize the connector but we cannt plug this to bridgeconfigfactory and hence ICI connector will not identify this custom connector.
    PFA the screen shot of the RDBMSConfigFactory class. I have highlighted the final variables.

    Regards,
    Gizi
    hi Gizi,
    For the custom connector issue, the COMPONENT_ID is typically final and customers have been able to subclass other connectors this way. However, I'm not sure why the FACTORY_CLASS is final for RDBMS as this is not the case with other connectors. I'm not sure if this was intentional and just never documented, or if this is a bug. I would suggest you also contact support for further investigation on this.

    Thanks.
    Kechy
  • SystemAdmin
    SystemAdmin
    254 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-04-21T22:02:27Z  
    hi Gizi,
    For the custom connector issue, the COMPONENT_ID is typically final and customers have been able to subclass other connectors this way. However, I'm not sure why the FACTORY_CLASS is final for RDBMS as this is not the case with other connectors. I'm not sure if this was intentional and just never documented, or if this is a bug. I would suggest you also contact support for further investigation on this.

    Thanks.
    Kechy
    Hi Gizi,
    It turns out this issue came up recently for NTFS. If you don't already have your answer to this question, I've posted the resolution below ->

    You shouldn't extend the RDBMSConfigFactory but instead, extend com.venetica.vbr.configuration.BridgeFactory and implement required methods. This will allow you to declare the COMPONENT_ID variable. If you want to make use of RDBMS connector resources in this custom BridgeFactory implementation, e.g. connector properties file, you should make a copy of the file used by the RDBMS connector and add it to their custom connector jar.

    The only classes that you can safely extend are:
    The BridgeFactory class, e.g. com.venetica.vbr.ejb.bridge.rdbms.RDBMSConnectorFactory
    The bean info class, e.g. com.venetica.vbr.ejb.bridge.rdbms.config.RDBMSConfigBeanInfo
    The actual bridge implementation class, e.g. com.venetica.vbr.ejb.bridge.rdbms.RDBMSConnector

    Besides, this, here is the link to our ICI 8.5.1 info center has documentation around developing custom connectors : http://publib.boulder.ibm.com/infocenter/ce/v8r5/index.jsp?topic=/com.ibm.discovery.ci.nav.doc/iiypcenv_conndev_cont.htm

    Also, Chapter 9 in this ICI-CFS red book talks about developing/extending connectors : http://w3.itso.ibm.com/redpieces/abstracts/sg247742.html?Open
  • gizi
    gizi
    7 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-04-25T09:22:14Z  
    Hi Gizi,
    It turns out this issue came up recently for NTFS. If you don't already have your answer to this question, I've posted the resolution below ->

    You shouldn't extend the RDBMSConfigFactory but instead, extend com.venetica.vbr.configuration.BridgeFactory and implement required methods. This will allow you to declare the COMPONENT_ID variable. If you want to make use of RDBMS connector resources in this custom BridgeFactory implementation, e.g. connector properties file, you should make a copy of the file used by the RDBMS connector and add it to their custom connector jar.

    The only classes that you can safely extend are:
    The BridgeFactory class, e.g. com.venetica.vbr.ejb.bridge.rdbms.RDBMSConnectorFactory
    The bean info class, e.g. com.venetica.vbr.ejb.bridge.rdbms.config.RDBMSConfigBeanInfo
    The actual bridge implementation class, e.g. com.venetica.vbr.ejb.bridge.rdbms.RDBMSConnector

    Besides, this, here is the link to our ICI 8.5.1 info center has documentation around developing custom connectors : http://publib.boulder.ibm.com/infocenter/ce/v8r5/index.jsp?topic=/com.ibm.discovery.ci.nav.doc/iiypcenv_conndev_cont.htm

    Also, Chapter 9 in this ICI-CFS red book talks about developing/extending connectors : http://w3.itso.ibm.com/redpieces/abstracts/sg247742.html?Open
    Hi Keke2,

    Thanks for your valuable responses. I understood what you are saying. I am now extending the base bridge factory instead of extending the specific implementation bridge factory. We had raised the problem with IBM support team also and received the same reply.

    Thanks alot for your responses so far and helping me out on my journey for custom connector development. I hope you'll keep helping me out if the need be. Once again thanks alot for your support always.

    Regards,
    gizi
  • SystemAdmin
    SystemAdmin
    254 Posts

    Re: Custom Connector for SQL - is it supported?

    ‏2011-05-02T23:14:24Z  
    • gizi
    • ‏2011-04-25T09:22:14Z
    Hi Keke2,

    Thanks for your valuable responses. I understood what you are saying. I am now extending the base bridge factory instead of extending the specific implementation bridge factory. We had raised the problem with IBM support team also and received the same reply.

    Thanks alot for your responses so far and helping me out on my journey for custom connector development. I hope you'll keep helping me out if the need be. Once again thanks alot for your support always.

    Regards,
    gizi
    Hi Gizi,
    You're welcome! I'm glad your question has been answered :)