У меня есть эта служба данных
<data name="DataService" transports="http https local">
<config enableOData="false" id="DS">
<property name="carbon_datasource_name">DataSource</property>
</config>
<query id="GetAccountInfo" useConfig="DS">
<sql>{? = call IBS.GET_ACC_INFO(?)}</sql>
<result element="accountInfo" rowName="account" useColumnNumbers="true">
<element column="1" name="AccountNumber" xsdType="string"/>
<element column="2" name="Balance" xsdType="string"/>
</result>
<param name="result" ordinal="1" sqlType="ORACLE_REF_CURSOR" type="OUT"/>
<param name="accountNumber" ordinal="2" sqlType="STRING"/>
</query>
<operation name="GetAccountInfo">
<call-query href="GetAccountInfo">
<with-param name="accountNumber" query-param="accountNumber"/>
</call-query>
</operation>
</data>
Что мне нужно сделать, это получить значения из функции, которая возвращает курсор. Я могу сделать это сам в SQLDeveloper, но когда я пытаюсь вызвать GetAccountInfo через SOAP, я всегда получаю тайм-аут без каких-либо исключений в журналах.
Мне удалось найти только эти:
[2018-09-10 14: 32: 27,554] DEBUG - Запрос получен в DSS: Данные
Сервис - DataService, Операция - urn: GetAccountInfo, Тело запроса -
, ThreadID - 500
{org.wso2.carbon.dataservices.core.DBInOutMessageReceiver} [2018-09-10
14: 32: 27,555] DEBUG - Создание соединения с источником данных: ThreadID - 500
{} Org.wso2.carbon.dataservices.core.description.config.SQLConfig
[2018-09-10 14: 32: 27,636] DEBUG - Запуск вызовов БД: для "{? = Вызов
IBS.GET_ACC_INFO (?)} "С параметрами -
{result: null}, {accountNumber: 1234} ,, ThreadID - 500
{Org.wso2.carbon.dataservices.core.description.query.SQLQuery}
Но после этого ничего нет.
Я считаю, что есть проблема с курсором, потому что я могу выполнять другие запросы в этой базе данных. Я что-то упустил?