Strange SalesForce ODBC behaviour

Hi there,

We have a BO-XI4.1 environment with BODS 14.5 (build 800) installed.

All is working fine, no problems there.

But there is an SalesForce ODBC driver installed. This driver is a 32bit in a 64bit windows environment.

When I use odbcad32 from windows\system32 I can not find the SalesForce ODBS driver.

When I use the odbcad32 from windows\sysWOW64 I can find the SalesForce driver, configure it and test it succesfull.

BODS uses the odbcad32 from windows\system32 which in my case can’t see the SalesForce driver. I can make a user DSN using the odbcad32 from windows\SysWOW64 which is visable in de windows\system32\odbcad32 but when I use it there, I get a message telling me that there is is architecture (32bit and 64bit) mismatch.

I get the same message from BODS when I want to use the user DSN.

My question is ; is the SalesForce odbc driver 32bit or is it 64bit ??? According the message it is 64bit but the documentation tells me it is a 32bit driver in a 64bit architecture.
What am I doing wrong ?

The SAP SalesForce ODBC driver is installed in C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\sforce and is build by Simba.

All help is welcome.

Thanks in advance (even for reading my post and try to figure it out).

Jacco


jdezwart :netherlands: (BOB member since 2010-05-26)

When I use Information Designer and I then use the SalesForce ODBC driver . . . . . no problem what so ever !

Testing the DSN in de windows\SysWOW64\odbcad32 show that the bitness is 32bit

I’m going like ‘hhuuu ??’


jdezwart :netherlands: (BOB member since 2010-05-26)

DS needs 64 bit odbc driver
Information design tool needs 32 bit
Your installation for sales force driver seems to be 32 bit

Simba has Java based sales force adapter for DS not Odbc
What exactly you are trying to do


manoj_d (BOB member since 2009-01-02)

Thanks for your reply.

All I want to do is use the SalesForce driver to connect to our HR-solution and load data from it.


jdezwart :netherlands: (BOB member since 2010-05-26)

if you are using dataservices for that ,then enable a Data Service Job server to manage adapters
logon to DS MC and create a Salesforce Adapter instance
go to Designer and create a Datastore of type Adapter, select salesforce Adapter instance, provide your SFDC credentials in the data store advanced properties
save the datastore and import tables from this datastore


manoj_d (BOB member since 2009-01-02)

thanks, I wil try that. Never done that before, so . . … :frowning:


jdezwart :netherlands: (BOB member since 2010-05-26)

Hi there,

I have tried to configure an Salesforce adapter.

I think I have succeded in doing so, but when I want to use the datastore in BODS designer, I get message 411 : Length required.

What am I doing wrong ?

Here are some configurationsettings :
Adapter is configerd default, no extra settings

The datastore configuration :
username : myUsername
password : password followed by token

Webservice end point :
https://www.salesforce.com/services/Soap/u/34.0/00D24000000bRAo

batchsize ; 200
metadata resiliense : no
Enable CDC ; no
Default Base64Binary Field length : 255
Disable CDC deleted records : false
Disable CDC upserted records : false
Convert date value to UTC : yes

Did I miss something???


jdezwart :netherlands: (BOB member since 2010-05-26)

use endPoint URL as
https://www.salesforce.com/services/Soap/u/21.0/

DS only supports SFDC version 21, to use higher version you will have to use SIMA SFDC Adapter for DS


manoj_d (BOB member since 2009-01-02)

Hi manoj_d,

Sorry for responding so late, but thanks for your input.

But your suggestion still gives me the errors :
6-11-15 14:58:11 There was a communication error when talking to Salesforce.com: Transport error: 411 Error: Length Required
6-11-15 14:58:23 There was a communication error when talking to Salesforce.com: Connection reset
6-11-15 14:58:23 Error browsing root nodes. Xml generated so far: []. com.acta.adapter.salesforce.exceptions.CommunicationFailureException: There was a communication error when talking to Salesforce.com: Connection reset
at com.acta.adapter.salesforce.SForceMetadata.describeGlobal(SForceMetadata.java:46)
at com.acta.adapter.salesforce.metadata.SForceBrowsing.getRootNodes(SForceBrowsing.java:72)
at com.acta.adapter.sdk.AdapterRunnerImpl.processBrowseRoot(AdapterRunnerImpl.java:2532)
at com.acta.adapter.sdk.AdapterServiceDataListener.handleBrokerMessage(AdapterServiceDataListener.java:106)
at com.acta.brokerclient.BrokerClient.handleMessage(BrokerClient.java:406)
at com.acta.brokerclient.BrokerClient.access$100(BrokerClient.java:53)
at com.acta.brokerclient.BrokerClient$MessageHandler.run(BrokerClient.java:1559)
at com.acta.brokerclient.ThreadPool$PoolThread.run(ThreadPool.java:100)


jdezwart :netherlands: (BOB member since 2010-05-26)

this may be because you have lots of object, check if import by name works, try importing Account Object and see if that works


manoj_d (BOB member since 2009-01-02)

Hi manoj_d,

Thanks for the advice, tried it, but no. Same error, lenght required.

Jacco


jdezwart :netherlands: (BOB member since 2010-05-26)

Are the new ssl certificates in DS cacerts file updated?


Shobhit_Acharya (BOB member since 2005-08-11)

currently the axis2 library that we are using is using transfer-encoding chunked, which is not working in your env

try this on the adapter job server
make a copy of %LINK_DIR%\ext\lib\axis2-kernel-1.6.2.jar, rename the copy as axis2-kernel-1.6.2_no_chunk.jar

use WinRAR or 7zip like tools to open the jar file, you will see a axis2.xml in the jar (root folder itself), extract this file to a temp folder, and edit this file in notepad

search for following (you will find 2 result)
chunked
replace each with

save the file and update the archive

Edit the Adapter configuration, and in the classpath change axis2-kernel-1.6.2.jar to axis2-kernel-1.6.2_no_chunk.jar

restart Adapter instance and test
if you still run into issue, open a ticket with SAP Support and let me know the ticket #


manoj_d (BOB member since 2009-01-02)

Hi there,

Tried it, but got the message :
[SAX Parser Error] :1:23 : cvc-elt.1: Cannot find the declaration of element ‘AdapterConfiguration’.

Jacco


jdezwart :netherlands: (BOB member since 2010-05-26)

you can ignore the following message, its a warning and not related to reading from SFDC

[SAX Parser Error] :1:23 : cvc-elt.1: Cannot find the declaration of element ‘AdapterConfiguration’.

what is the error that you are getting now ? will it possible for you to open a support case ? it will be easier for me to work with you on this issue, just let me know the message #


manoj_d (BOB member since 2009-01-02)

Hi there manoj_d,

I have tried you suggestion. The first time when I want to import a table by name, I get not the ‘length required’ message, but a general message about communication.

When I try it the second time, I get the message ‘Length required’. I have done what you suggested.

Here the Adapter trace log :
17-11-15 14:33:43 Thread[main,5,main] Create broker client for life-cycle management. Host:port = BO02:4001
17-11-15 14:33:43 Thread[main,5,main] Create broker client for data exchange with ASP. Host:port = BO02:4001. Client ID = com.acta.adapter.salesforce.SalesForceAdapter.data_95
17-11-15 14:33:44 Thread[main,5,main] [SAX Parser Error] :1:23 : cvc-elt.1: Cannot find the declaration of element ‘AdapterConfiguration’.
17-11-15 14:33:44 Thread[Thread-11,5,main] Host and port for the Access Server are not defined in startup configuration. Real-time services are not available.
17-11-15 14:33:44 Thread[Thread-11,5,main] Start instance [SalesForce] of adapter [com.acta.adapter.salesforce.SalesForceAdapter].
17-11-15 14:33:44 Thread[Thread-11,5,main] Register the client ID [com.acta.adapter.salesforce.SalesForceAdapter.data_95] and adapter destination [BO02:4001] with the adapter manager.
17-11-15 14:33:44 Thread[Thread-11,5,main] Registration complete.
17-11-15 14:38:45 Thread[Thread-5,5,main] Stop [SalesForce].
17-11-15 14:41:11 Thread[main,5,main] Create broker client for life-cycle management. Host:port = BO02:4001
17-11-15 14:41:13 Thread[main,5,main] Create broker client for data exchange with ASP. Host:port = BO02:4001. Client ID = com.acta.adapter.salesforce.SalesForceAdapter.data_2
17-11-15 14:41:14 Thread[main,5,main] [SAX Parser Error] :1:23 : cvc-elt.1: Cannot find the declaration of element ‘AdapterConfiguration’.
17-11-15 14:41:14 Thread[Thread-11,5,main] Host and port for the Access Server are not defined in startup configuration. Real-time services are not available.
17-11-15 14:41:14 Thread[Thread-11,5,main] Start instance [SalesForce] of adapter [com.acta.adapter.salesforce.SalesForceAdapter].
17-11-15 14:41:14 Thread[Thread-11,5,main] Register the client ID [com.acta.adapter.salesforce.SalesForceAdapter.data_2] and adapter destination [BO02:4001] with the adapter manager.
17-11-15 14:41:14 Thread[Thread-11,5,main] Registration complete.
20-11-15 10:14:12 Thread[Thread-10,5,main] Starting the Salesforce.com session
20-11-15 10:14:15 Thread[Thread-10,5,main] Login to Salesforce, attempt : 1
20-11-15 10:14:20 Thread[Thread-10,5,main] Starting SForceMetadata Session
20-11-15 10:14:49 Thread[Thread-10,5,main] Importing table Afdeling (CDC: true)
20-11-15 10:14:50 Thread[Thread-10,5,main] There was a communication error when talking to Salesforce.com: Transport error: 411 Error: Length Required
20-11-15 10:17:12 Thread[Thread-5,5,main] com.acta.adapter.salesforce.SForceSession@4c632208 Stopping the Salesforce.com session
20-11-15 10:17:12 Thread[Thread-5,5,main] Stop [SalesForce].
20-11-15 10:17:29 Thread[main,5,main] Create broker client for life-cycle management. Host:port = BO02:4001
20-11-15 10:17:29 Thread[main,5,main] Create broker client for data exchange with ASP. Host:port = BO02:4001. Client ID = com.acta.adapter.salesforce.SalesForceAdapter.data_30
20-11-15 10:17:30 Thread[main,5,main] [SAX Parser Error] :1:23 : cvc-elt.1: Cannot find the declaration of element ‘AdapterConfiguration’.
20-11-15 10:17:30 Thread[Thread-11,5,main] Host and port for the Access Server are not defined in startup configuration. Real-time services are not available.
20-11-15 10:17:30 Thread[Thread-11,5,main] Start instance [SalesForce] of adapter [com.acta.adapter.salesforce.SalesForceAdapter].
20-11-15 10:17:30 Thread[Thread-11,5,main] Register the client ID [com.acta.adapter.salesforce.SalesForceAdapter.data_30] and adapter destination [BO02:4001] with the adapter manager.
20-11-15 10:17:30 Thread[Thread-11,5,main] Registration complete.
20-11-15 10:36:33 Thread[Thread-10,5,main] Starting the Salesforce.com session
20-11-15 10:36:33 Thread[Thread-10,5,main] Login to Salesforce, attempt : 1
20-11-15 10:36:35 Thread[Thread-10,5,main] Starting SForceMetadata Session
20-11-15 10:36:47 Thread[Thread-10,5,main] Importing table Afdeling (CDC: true)
20-11-15 10:36:47 Thread[Thread-10,5,main] There was a communication error when talking to Salesforce.com: Connection reset
20-11-15 10:37:58 Thread[Thread-10,5,main] Importing table Department (CDC: true)
20-11-15 10:37:58 Thread[Thread-10,5,main] There was a communication error when talking to Salesforce.com: Transport error: 411 Error: Length Required
20-11-15 10:38:17 Thread[Thread-10,5,main] Importing table Afdeling (CDC: true)
20-11-15 10:38:18 Thread[Thread-10,5,main] There was a communication error when talking to Salesforce.com: Transport error: 411 Error: Length Required
20-11-15 10:38:24 Thread[Thread-10,5,main] There was a communication error when talking to Salesforce.com: Transport error: 411 Error: Length Required
20-11-15 10:38:24 Thread[Thread-10,5,main] Error browsing root nodes. Xml generated so far: []. com.acta.adapter.salesforce.exceptions.CommunicationFailureException: There was a communication error when talking to Salesforce.com: Transport error: 411 Error: Length Required
at com.acta.adapter.salesforce.SForceMetadata.describeGlobal(SForceMetadata.java:46)
at com.acta.adapter.salesforce.metadata.SForceBrowsing.getRootNodes(SForceBrowsing.java:72)
at com.acta.adapter.sdk.AdapterRunnerImpl.processBrowseRoot(AdapterRunnerImpl.java:2532)
at com.acta.adapter.sdk.AdapterServiceDataListener.handleBrokerMessage(AdapterServiceDataListener.java:106)
at com.acta.brokerclient.BrokerClient.handleMessage(BrokerClient.java:406)
at com.acta.brokerclient.BrokerClient.access$100(BrokerClient.java:53)
at com.acta.brokerclient.BrokerClient$MessageHandler.run(BrokerClient.java:1559)
at com.acta.brokerclient.ThreadPool$PoolThread.run(ThreadPool.java:100)

20-11-15 10:38:27 Thread[Thread-10,5,main] com.acta.adapter.salesforce.SForceSession@9cbd0c5 Stopping the Salesforce.com session
20-11-15 10:38:27 Thread[Thread-10,5,main] Stopping SForceMetadata Session


jdezwart :netherlands: (BOB member since 2010-05-26)

are you connecting via a proxy, looks like something specific to your env
by default DS SFDC Adapter is using compression and chunking which looks like is not working in your env

I can add parameter to disable chunking and compression in the adapter, please open a support case I can provide you the updated adapter

if you already have a case, let me know the number


manoj_d (BOB member since 2009-01-02)

Hi manoj_d,

The incident number is : 0000870321

I hope I have created the incident in the right way.

Jacco


jdezwart :netherlands: (BOB member since 2010-05-26)

SOLVED !!

Thanks to SAP support my problem is solved ! They have send me a new salesforce jar file and it works.

Thanks everyone for the suggestions, hints and tips.

Jacco


jdezwart :netherlands: (BOB member since 2010-05-26)