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

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
    ACCEPTED ANSWER

    Re: Custom Connector for SQL - is it supported?

    ‏2011-03-31T15:10:29Z  in response to gizi
    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
      ACCEPTED ANSWER

      Re: Custom Connector for SQL - is it supported?

      ‏2011-04-05T23:58:00Z  in response to gizi
      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
        ACCEPTED ANSWER

        Re: Custom Connector for SQL - is it supported?

        ‏2011-04-06T06:17:18Z  in response to SystemAdmin
        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
    ACCEPTED ANSWER

    Re: Custom Connector for SQL - is it supported?

    ‏2011-04-08T02:46:12Z  in response to gizi
    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
      ACCEPTED ANSWER

      Re: Custom Connector for SQL - is it supported?

      ‏2011-04-11T06:49:23Z  in response to SystemAdmin
      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
        ACCEPTED ANSWER

        Re: Custom Connector for SQL - is it supported?

        ‏2011-04-12T03:12:09Z  in response to 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
          ACCEPTED ANSWER

          Re: Custom Connector for SQL - is it supported?

          ‏2011-04-12T07:02:09Z  in response to SystemAdmin
          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
            ACCEPTED ANSWER

            Re: Custom Connector for SQL - is it supported?

            ‏2011-04-19T03:14:11Z  in response to 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
              ACCEPTED ANSWER

              Re: Custom Connector for SQL - is it supported?

              ‏2011-04-21T22:02:27Z  in response to SystemAdmin
              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
                ACCEPTED ANSWER

                Re: Custom Connector for SQL - is it supported?

                ‏2011-04-25T09:22:14Z  in response to SystemAdmin
                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
                  ACCEPTED ANSWER

                  Re: Custom Connector for SQL - is it supported?

                  ‏2011-05-02T23:14:24Z  in response to gizi
                  Hi Gizi,
                  You're welcome! I'm glad your question has been answered :)