Wso2 ESB Интеграция с SFDC
Я интегрирую WSO2 ESB 4.8.1 с SFDC.
Использование SFDC коннектора 1.0
В WSO2 я написал код <salesforce.logout/>
В соответствии с документацией WSO2 говорится, что она закрывает текущее соединение.
<salesforce.logout/>
выдает ниже мыльное сообщение, которое я указал в журнале ESB WSO2
TID: [0] [ESB] [2016-08-30 07:55:39,442] DEBUG {org.apache.synapse.transport.http.wire} - << "<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:partner.soap.sforce.com"><soapenv:Header><urn:SessionHeader><urn:sessionId>00D17000000BPGr!AQcAQDIggW.ikXtsb0Ckm8c8pKKDlF_8QN42jL31WUa6hDLOdEeNIjrYsevKW0FeZLDzlrjcDLwMni_7gYaZgNfdN4zv9Cgj</urn:sessionId></urn:SessionHeader></soapenv:Header><soapenv:Body><urn:logout></urn:logout></soapenv:Body></soapenv:Envelope>[\r][\n]" {org.apache.synapse.transport.http.wire}
Но несколько раз я получаю сообщение об ошибке ниже (INVALID_SESSION_ID: в SessionHeader найден неверный идентификатор сеанса: недопустимый сеанс. Сессия не найдена, отсутствует хэш сеанса:), когда <salesforce.logout/>
выполняется
TID: [0] [ESB] [2016-08-30 07:55:39,529] DEBUG {org.apache.synapse.transport.http.wire} - >> "<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sf="urn:fault.partner.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode>sf:INVALID_SESSION_ID</faultcode><faultstring>INVALID_SESSION_ID: Invalid Session ID found in SessionHeader: Illegal Session. Session not found, missing session hash: je59etMAEPM+m9VdYJb0AW==[\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2016-08-30 07:55:39,529] DEBUG {org.apache.synapse.transport.http.wire} - >> "This is expected, it can happen if the session has expired and swept away, or if the user logs out, or if its just someone trying to hack in. </faultstring><detail><sf:UnexpectedErrorFault xsi:type="sf:UnexpectedErrorFault"><sf:exceptionCode>INVALID_SESSION_ID</sf:exceptionCode><sf:exceptionMessage>Invalid Session ID found in SessionHeader: Illegal Session. Session not found, missing session hash: je59etMAEPM+m9VdYJb0AW==[\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2016-08-30 07:55:39,529] DEBUG {org.apache.synapse.transport.http.wire} - >> "This is expected, it can happen if the session has expired and swept away, or if the user logs out, or if its just someone trying to hack in. </sf:exceptionMessage></sf:UnexpectedErrorFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>[\r][\n]" {org.apache.synapse.transport.http.wire}
Это проблема SFDC /WSO2 SFDC-соединитель /WSO2 ESB?
Для операции upsert мы используем атрибут configkey во всем проекте, ниже приведен код
<salesforce.upsert configKey="sfdc_connection_dtls">
<allOrNone>0</allOrNone>
<allowFieldTruncate>0</allowFieldTruncate>
<sobjects xmlns:sfdc="sfdc">{//sfdc:sObjects}</sobjects>
</salesforce.upsert>
Поэтому, когда я использую <salesforce.logout/>
в соответствующей последовательности закрывает только текущее соединение, которое доступно в последовательности? или он закрывает все существующие соединения.?
Где бы я ни использовал salesforce.upsert (ниже приведен код скелета) я могу использовать <salesforce.logout/>
после salesforce.upsert звонок.
<salesforce.upsert configKey="sfdc_connection_dtls">
<!-- sobject goes here -->
</salesforce.upsert>
Ждем вашей помощи
Спасибо, Техас
1 ответ
В коннекторе WDC2 SFDC существует одно SF-соединение, созданное для каждого потока в конфигурации инициализации. Поэтому, если вы выйдете из системы, ваши последующие запросы не будут выполнены. Нет необходимости выдавать выход, так как соединение в любом случае прерывается в конце потока.