08
Nov
Handful of common OSB error codes
- #GenySoft, Hyderabad, INDIA — SOA | Cloud | API | Middleware | Integration | OSB | ESB | WSO2 | Mulesoft
- Oracle Service Bus
Handful of common OSB error codes.
- ‘OSB-380000’ -General runtime error: message, Server found but service not available , In case server not running on same port, In case of Timeout set on Business Service, In case of Timeout while obtaining connection to remote server:
- ‘OSB-380001’ – A runtime error has occurred in OSB pipeline runtime while processing the message
- ‘OSB-380002’ – Tried All 2 Addresses, but could not connect tover HTTP
- ‘OSB-380003’ – An error has occurred in OSB pipeline runtime while processing the request message for specified proxy service
- ‘OSB-382502’ – OSB Service Callout action received an error response
- ‘OSB-382500’ – OSB Service Callout action received SOAP Fault response
- ‘OSB-382501’ – OSB Service Callout action received an unrecognized response
- ‘OSB-382505’ – OSB Validate Action Failed
- ‘OSB-382547’ – The value for part “name” is not valid. An XML Element is expected.An error had occured during the execution of service callout action during the phase when an outbound request payload gets constructed due to the fact that the configured message context variable does not contain valid XML element.
- OSB-382030′ – Failure while unmarshalling message: message
Oracle reference links
https://docs.oracle.com/html/E15867_01/app_error_codes.htm#BABBGIIE
https://docs.oracle.com/cd/E17904_01/apirefs.1111/e15034/toc.htm
© 2019 GenySoft. All rights reserved.
In this post, you will learn to do Error Handling and will incorporate in the Pipeline Template created in post. We consider our Pipeline to return generic Fault response with error message in all possible error scenarios.
As you know, service provider can send error to consumer in following ways:
- As a normal response, by populating fields like “ErrorNumber” and “ErrorMesssage” (assuming that these fields are defined in response message of operation in WSDL).
- As a SOAP fault
Typically when Service Bus is mediating, you might have to transform Error or Fault response to the Fault structure defined in WSDL. For this, you need to understand Message Context Variables that can be used.
As per WS-I BP, the service provider should send the HTTP response code as 200 when the error is sent as normal response and 500 should be sent when the error is sent as SOAP fault.
In message flow, Error Handler can be defined for Stage node, Pipeline Pair node (both Request Pipeline and Response Pipeline individually), Routing node and for entire Pipeline (called Service Error Handler). When HTTP response code 200 is received, Service Bus treats it as a normal response and proceeds further with message flow. When response code 500 is received, Service Bus runtime control goes to Service Error Handler if it exists or any other low level Error Handlers depending on where you received. That means Service Bus treats even Fault response as normal response when HTTP response code is 200.
Service Bus populates different message context variables with error/fault messages and is accessible in Error Handler depending on whether you used Routing or Service Callout. The following table summarizes this discussion:
Activity |
Scenario |
Context Variable |
Routing |
Raise Error activity |
$fault |
Routing |
Fault Response from business service |
$body |
Routing |
System fault while calling business service |
$fault |
Service Callout |
Raise Error activity |
$fault |
Service Callout |
Fault Response from business service |
$fault |
Service Callout |
System fault while calling business service |
$fault |
So there is a possibility of 3 context variables $body, $fault and $faultVar having Error or Fault information (assuming faultVar is variable used in Raise Error activity of your message flow).
With this background, let us get back to Pipeline Template to add required Error Handler. Since your Pipeline uses both Service Callout and Routing in message flow, you can do fault handling in the following manner in Pipeline Template so that all of your concrete pipelines using this template would inherit this automatically.
- Add Service Error Handler.
- Add conditional branches in error handler to verify $body is populated with SOAP Fault, or faultVar or $fault is populated. Based on this, you have to extract Error Code and Error Message from $body, $faultVar and $fault variables.
- Populate $body variable with the Fault structure as defined in WSDL.
Changes in CustomerPipelineTemplate:
Drag If-Then activity into ErrorHandler stage from Flow Control and add 3 conditional branches (Else If branch) as shown below.
In Properties tab, set Condition for all branches in Expression Builder as shown below. Remember adding the namespace http://www.bea.com/wli/sb/stages/transform/config with con1 as alias in Namespaces.
Branch |
Condition |
Purpose |
If |
not(fn:empty($body/soap-env:Fault)) |
To handle fault received in Routing. |
Else If |
not(fn:empty($faultVar)) |
To handle error response from given in Raise Error activity. |
Else If |
not(fn:empty($fault/ctx:details/con1:ReceivedFaultDetail)) |
To handle fault received in Service Callout or Raise Error cases. |
Else |
-NA- |
All other cases. |
Drag Replace activity from Message Processing into each of these branches and set properties as shown below.
Set expression in Expression Builder with following SOAP Fault structure for Replace activity in If branch. Here you are extracting Error Code and Error Message from received SOAP fault received in Routing. This way you are forwarding the actual error from Service Provider to Consumer.
<soap-env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>{$body/soap-env:Fault/faultstring/text()}</faultstring>
<detail>
<cust:ErrorStatusMsg xmlns:cust=»http://xmlns.xyzbank.com/schema/Customer»>
<ErrorCode>{$body/soap-env:Fault/faultcode/text()}</ErrorCode>
<ErrorMsg>{$body/soap-env:Fault/faultstring/text()}</ErrorMsg>
</cust:ErrorStatusMsg>
</detail>
</soap-env:Fault>
Set expression in Expression Builder with following SOAP Fault structure for Replace activity in Else If branch. Here you are extracting Error Code and Error Message used in Raise Error activity. Observe the usage of $fault variable to get error code given in RaiseError activity. This way you are forwarding the error message used in Raise Error activity to Consumer.
<soap-env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>{$faultVar/error_message/text()}</faultstring>
<detail>
<cust:ErrorStatusMsg xmlns:cust=»http://xmlns.xyzbank.com/schema/Customer»>
<ErrorCode>{$fault/ctx:errorCode/text()}</ErrorCode>
<ErrorMsg>{$faultVar/error_message/text()}</ErrorMsg>
</cust:ErrorStatusMsg>
</detail>
</soap-env:Fault>
Set expression in Expression Builder with following SOAP Fault structure for Replace activity in second Else If branch. Here you are extracting Error Code and Error Message from SOAP Fault received in Service Callout. This way you are forwarding actual error from Service Provider to Consumer.
<soap-env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>{$fault/ctx:reason/text()}</faultstring>
<detail>
<cust:ErrorStatusMsg xmlns:cust=»http://xmlns.xyzbank.com/schema/Customer»>
<ErrorCode>{$fault/ctx:details/con1:ReceivedFaultDetail/con1:faultcode/text()}</ErrorCode>
<ErrorMsg>{$fault/ctx:details/con1:ReceivedFaultDetail/con1:faultstring/text()}</ErrorMsg>
</cust:ErrorStatusMsg>
</detail>
</soap-env:Fault>
Set expression in Expression Builder with following SOAP fault structure for Replace activity in Else branch. Here you are extracting Error Code and Error Message from $fault to take care of other possible error scenarios.
<soap-env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>{$fault/ctx:reason/text()}</faultstring>
<detail>
<cust:ErrorStatusMsg xmlns:cust=»http://xmlns.xyzbank.com/schema/Customer»>
<ErrorCode>{$fault/ctx:errorCode/text()}</ErrorCode>
<ErrorMsg>{$fault/ctx:reason/text()}</ErrorMsg>
</cust:ErrorStatusMsg>
</detail>
</soap-env:Fault>
Now drag Reply activity into ErrorHandler stage from Flow Control after If-then. In Properties tab, select property as With Failure. This would send HTTP response code as 500 along with SOAP fault. Selecting With Success will send HTTP response code as 200.
Alternatively, you can come up with a XQuery map accepting these parameters and return appropriate SOAP fault structure. Now your ErrorHandler stage should look like below.
Observe that the Proxy Service you created using this Pipeline Template in this post had inherited ErrorHandler stage as shown below.
Some times, you may want to give your specific messages or override the messages from Service Provider. You can make all this kind of changes in your Error Handler and also typically one would want to convert System Errors into generic Application Error before sending to Proxy Service consumer. You can find more about details element in $fault variable here.
Testing:
Run your Pipeline and observe Flow Trace and Variables as shown below. Observe that the Error response from your Pipeline always contains a SOAP Fault conforming to WSDL.
Following are a few of the screenshots showing different Fault responses for both Routing and Service Callout in different error scenarios.
System Error in Routing:
Error Response received in Routing:
Fault Response received in Routing:
Validate activity failure Error:
System Error received in Service Callout:
Error Response received in Service Callout:
Fault Response received in Service Callout:
Сведения приведены в документе Перечень типовых ошибок, возвращаемых участнику при работе в СМЭВ 3.0.
SMEV-100
1. Текст ошибки: Отсутствует ЭП-ОВ.
Возникает на этапе проверки ЭЦП в рамках синхронной обработки xml-сообщения, принятого методом GetRequest, GetResponse, Ack.
Причина | Пример |
Запрос не подписан электронной подписью органа власти (ЭП-ОВ) (отсутствует или некорректно заполнен блок SenderInformationSystemSignature) |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>Отсутствует ЭП-ОВ</faultstring> <detail> <ns3:SignatureVerificationFault xmlns:ns3="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/faults/1.1" xmlns:ns2="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1" xmlns="urn://x-artefacts-smev-gov-ru/services/message-exchange/types/basic/1.1"> <Code>fed0:PRODUCTION_AREA:FED0_CORE2 : TR:SYNC:SPS:1</Code> <Description>SMEV-100:Отсутствует ЭП-ОВ</Description> <ns3:SignatureVerificationFault>NoSignatureFound</ns3:SignatureVerificationFault> </ns3:SignatureVerificationFault> </detail> </soap:Fault> </soap:Body> </soap:Envelope> |
Рекомендуется подписать сообщение ЭП-ОВ и повторить отправку.
2. Текст ошибки: @signatureTypeAsString не соответствует подписанным данным.
Возникает на этапе проверки ЭЦП в рамках синхронной/асинхронной обработки xml-сообщения, принятого методом SendRequest, SendResponse.
Причина | Пример |
ЭП-СП не соответствует подписанным данным: данные изменены после подписания или допущены ошибки при формировании подписи |
<ns2:AsyncProcessingStatus>
<ns2:OriginalMessageId>0f952bd0-3868-11ea-b0b7-0050569445fb</ns2:OriginalMessageId>
<ns2:StatusCategory>requestIsRejectedBySmev</ns2:StatusCategory>
<ns2:StatusDetails>ЭП-СП не соответствует подписанным данным: ru.voskhod.crypto.exceptions.SignatureValidationException:
Ошибка проверки ЭП: Нарушена целостность ЭП.</ns2:StatusDetails>
<ns2:SmevFault xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ns3:SignatureVerificationFault">
<Code>fed0:P:FED0_ASYNC_CORE1:TR:ASYNC:SPS:2</Code>
<Description>SMEV-100:ЭП-СП не соответствует подписанным данным:
ru.voskhod.crypto.exceptions.SignatureValidationException: Ошибка проверки ЭП: Нарушена целостность ЭП.</Description>
<ns3:SignatureVerificationFault>SignatureIsInvalid</ns3:SignatureVerificationFault></ns2:SmevFault>
</ns2:AsyncProcessingStatus>
|
ЭП-ОВ не соответствует подписанным данным: данные изменены после подписания или допущены ошибки при формировании подписи |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется проверить алгоритм подписи. Общая последовательность должна быть такой (на примере SendRequest):
- каноникализация содержимого узла SenderProvidedRequestData;
- нормализация;
- расчет хэша;
- формирование ЭП-ОВ:
- запись cодержимого хэша в CallerInformationSystemSignatureSignatureSignedInfoDigestValue
- каноникализация, нормализация элемента CallerInformationSystemSignatureSignatureSignedInfo
- расчёт хэша элемента CallerInformationSystemSignatureSignatureSignedInfo
- подпись хэша CallerInformationSystemSignatureSignatureSignedInfo
- запись значения подписи в CallerInformationSystemSignatureSignatureSignatureValue
- запись данных сертификата в CallerInformationSystemSignatureSignatureKeyInfoX509DataX509Certificate
3. Текст ошибки: Проверка подписи на вложении @id_вложения: @error.
Возникает на этапе проверки ЭЦП в рамках синхронной/асинхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Неправильно подписано вложение или ошибка в структуре конверта СМЭВ |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
<ns2:AsyncProcessingStatus>
<ns2:OriginalMessageId>35861260-1599-11ea-b248-000c2904fa57</ns2:OriginalMessageId>
<ns2:StatusCategory>requestIsRejectedBySmev</ns2:StatusCategory>
<ns2:StatusDetails>Проверка подписи на вложении 35880e30-1599-11ea-b248-000c2904fa57:
Дайджест не прошел проверку!</ns2:StatusDetails>
<ns2:SmevFault xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ns3:SignatureVerificationFault">
<Code>tsmev3:P:TSMEV3_ASYNC_CORE2:TR:ASYNC:PP:SPS:7</Code>
<Description>SMEV-100:Проверка подписи на вложении 35880e30-1599-11ea-b248-000c2904fa57:
Дайджест не прошел проверку!</Description>
<ns3:SignatureVerificationFault>SignatureIsInvalid</ns3:SignatureVerificationFault>
</ns2:SmevFault></ns2:AsyncProcessingStatus>
|
Рекомендуется проверить в каком формате электронная подпись добавлена в сообщение, а так же проверить структуру XML-сообщения на соответствие общим схемам СМЭВ с помощью инструмента «Проверки корректности xml-сообщения», размещенном на главной странице неавторизованной зоны ЛК УВ.
4. Текст ошибки: Проверка подписи на вложении @id_вложения: Ошибка получения дайджеста (OID) из подписи.
Возникает на этапе проверки подписи вложения на соответствие формату PKCS#7 в рамках синхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Подпись вложенных файлов не удовлетворяет Профилю формата PKCS#7 |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется проверить что подпись вложения удовлетворяет профилю формата PKCS#7 согласно п.6.3.1. Подписи в формате PKCS#7 и
Приложение В. Профиль формата PKCS#7, которому должны удовлетворять подписи вложенных файлов» Методических рекомендаций по работе с Единой системой межведомственного электронного взаимодействия.
5. Текст ошибки: Срок действия сертификата ЭП-* истёк. Сертификат действителен до @validUntil.
Возникает на этапе проверки ЭЦП в рамках синхронной/асинхронной обработки xml-сообщения, принятого методом SendRequest, SendResponse.
Причина | Пример |
Срок действия ЭП-ОВ истёк. | <soap:Envelope xmlns:soap=»http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body> |
Срок действия ЭП-СП истёк. |
<AsyncProcessingStatus><OriginalMessageId>4fd0f689-1d79-11e9-831b-00155d1c2b05</OriginalMessageId>
<StatusCategory>requestIsRejectedBySmev</StatusCategory>
<StatusDetails>Срок действия сертификата ЭП-СП истёк. Сертификат действителен до 2018-10-12 10:16</StatusDetails>
<SmevFault xsi:type="ns3:SignatureVerificationFault"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns2:Code>fed0:P:FED0_ASYNC_CORE2:TR:ASYNC:SPS:4</ns2:Code>
<ns2:Description>SMEV-100:Срок действия сертификата ЭП-СП истёк.
Сертификат действителен до 2018-10-12 10:16</ns2:Description>
<ns3:SignatureVerificationFault>CertificateIsExpired</ns3:SignatureVerificationFault>
</SmevFault></AsyncProcessingStatus>
|
Рекомендуется проверить сроки действия сертификата в блоке PersonalSignature.Заменить ЭП на действительную электронную подпись и повторить отправку сообщения.
6. Текст ошибки: Срок действия сертификата ЭП-* не начался. Сертификат действителен с @validSince
Возникает на этапе проверки ЭЦП в рамках асинхронной обработки xml-сообщения, принятого методом SendRequest, SendResponse.
Причина | Пример |
Срок действия ЭП-ОВ не начался. | <soap:Envelope xmlns:soap=»http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body> xmlns:ns2=»urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.3″ |
Срок действия ЭП-СП не начался. |
|
Рекомендуется обратиться в Удостоверяющий центр, выдавший сертификат.
7. Текст ошибки: Cертификат отозван. Код ответа в ГУЦ: @code
Возникает на этапе проверки сертификата ЭП-ОВ в ГУЦ в рамках асинхронной обработки xml-сообщения, принятого методом SendRequest, SendResponse.
Причина | Пример |
Возникла ошибка при проверке сертификата в ИС ГУЦ |
<AsyncProcessingStatus><OriginalMessageId>03e1b072-1993-11e9-99c3-62fe784ec952</OriginalMessageId>
<StatusCategory>requestIsRejectedBySmev</StatusCategory>
<StatusDetails>Cертификат отозван. Код ответа в ГУЦ:14</StatusDetails>
<SmevFault xsi:type="ns3:SignatureVerificationFault"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns2:Code>fed0:P:FED0_ASYNC_CORE2:TR:ASYNC:GUTC:1</ns2:Code>
<ns2:Description>SMEV-100:Cертификат отозван. Код ответа в ГУЦ:14</ns2:Description>
<ns3:SignatureVerificationFault>CertificateIsExpired</ns3:SignatureVerificationFault>
</SmevFault></AsyncProcessingStatus>
|
Рекомендуется обратиться в Удостоверяющий центр, выдавший сертификат.
8. Текст ошибки: Технологический доступ к СМЭВ временно отозван в связи с нарушением установленного лимита обращений в систему.
Возникает на этапе проверки лимитов обращения к методам Единого сервиса СМЭВ 3 в рамках синхронной обработки.
Причина | Пример |
Превышены допустимые лимиты по одному из методов Единого сервиса СМЭВ 3 |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется Уменьшить интенсивность обращения к методам Единого сервиса СМЭВ 3 до рекомендованных. Значения лимитов по умолчанию зафиксированы в п. 5.4 Методических Рекомендаций СМЭВ.
SMEV-200
1. Текст ошибки: Превышен максимально допустимый суммарный размер присоединённых файлов и сообщения.
Возникает на этапе проверки размера сообщения в рамках синхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Размер присоединённых файлов превысил 5 Мб при отправке через MTOM |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется проверить размер прикрепляемых файлов — суммарный размер вложений для передачи с помощью МТОМ с одним сообщением не должен превышать 5 Мб.
2. Текст ошибки: Количество ФТП-вложений превышает допустимое.
Возникает на этапе проверки количества ФТП-вложений в сообщении, принятого методом SendRequest либо SendResponse в рамках синхронной обработки.
Причина | Пример |
Количество вложений в сообщении превысило лимит. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется сократить количество вложений, передаваемых в сообщении, до разрешенного. Целевой лимит количества вложений указан в синхронном ответе в блоке PermittedTotalAttachmentSize.
SMEV-201
1. Текст ошибки: Некорректная информация о фтп вложениях; message id = @id_сообщения.
Возникает на этапе проверки файлов вложения в рамках асинхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
1.Несоответствие заголовка и вложений 2. Вложение не загружено перед отправкой сообщения |
<AsyncProcessingStatus> |
Рекомендуется:
- убедиться, что вложение было предварительно загружено на файловое хранилище СМЭВ;
- проверить корректность указания в сообщении содержимого заголовка RefAttachmentHeader.
2. Текст ошибки: Ошибка СМЭВ. Обратитесь в службу технической поддержки.
Возникает на этапе проверки заголовков файлов вложения сообщения в рамках синхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Несоответствие заголовка и вложений |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется:
- убедиться, что каждому AttachmentHeader в сообщении соответствует AttachmentContent;
- убедиться, что количество заголовков равно количеству вложений;
- убедиться, что содержимое элементов Id в AttachmentContent не дублируется».
SMEV-202
Текст ошибки: Квота на файловое хранилище для получателя превышена!
Возникает на этапе определения файловой квоты в рамках асинхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Закончился выделенный на файловом хранилище СМЭВ объем свободного места для ИС УВ-получателя сообщения с вложением в результате несвоевременного разбора входящей очереди сообщений. | <AsyncProcessingStatus> |
Рекомендуется повторить отправку сообщения с вложением через промежуток времени или обратиться к получателю сообщения через СЦ.
SMEV-206
Текст ошибки: Количество символов в идентификаторе файла вложения превышает допустимое.
Возникает на этапе валидации идентификатора файла вложения МТОМ в рамках синхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Идентификатор файла МТОМ вложения, передаваемого в сообщении превышает 255 символов | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется сформировать идентификаторы, передаваемые в тегах //AttachmentHeader/contentId и //AttachmentContent/id, не превышающие размер в 255 символов.
SMEV-300
Текст ошибки: Недопустимый формат идентификатора сообщения. См. RFC-4122.
Возникает на этапе валидация идентификатора сообщения в рамках синхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Формат идентификатора сообщения MessageID не соответствует стандарту RFC-4122. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется проверить корректность содержимого элемента MessageID. UUID необходимо генерировать по версии 1 (см. п. 4.2 «Algorithms for Creating a Time-Based UUID» RFC 4122 http://rfc.askapache.com/rfc4122/rfc4122.html#section-4.2). СМЭВ использует метку времени, содержащуюся в UUID, для проверки срока годности сообщения, к которому относится данный UUID. Для СМЭВ срок годности одного сообщения составляет 24 часа.
SMEV-301
Текст ошибки: Сообщение с идентификатором @messageId было послано ранее.
Возникает на этапе валидации идентификатора сообщения в рамках синхронной/асинхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Отправляется сообщение с MessageID, который уже отправлялся ранее. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
<AsyncProcessingStatus><OriginalMessageId>a95b71d6-1993-11e9-8758-3bde16b3418d</OriginalMessageId>
<StatusCategory>requestIsRejectedBySmev</StatusCategory>
<StatusDetails>Сообщение с идентификатором
a95b71d6-1993-11e9-8758-3bde16b3418d было послано ранее.</StatusDetails>
<SmevFault><ns2:Code>LOCAL:P:localhost:TR:ASYNC:UNQ:3</ns2:Code>
<ns2:Description>SMEV-301:Сообщение с идентификатором
a95b71d6-1993-11e9-8758-3bde16b3418d было послано ранее.</ns2:Description>
</SmevFault></AsyncProcessingStatus>
|
Рекомендуется сгенерировать новое значение для MessageID и повторить отправку.
SMEV-302
Текст ошибки: Timestamp идентификатора сообщения слишком давний.
Возникает на этапе валидации идентификатора сообщения в рамках синхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Метка времени в идентификаторе сообщения MessageID более 24-х часов. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется проверить дату и время генерации метки времени. Сгенерировать MessageID с новой меткой времени.
SMEV-401
1. Текст ошибки: Не найден вид сведений.
Возникает на этапе проверки наличия вида сведений в рамках синхронной/асинхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
В блоке MessagePrimaryContent указаны корневой элемент или целевое пространство имен незарегистрированного в СМЭВ 3 Вида сведений или текущее время отправления запроса не входит в срок действия ВС (с/по) |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
<st3:AsyncProcessingStatus> |
Рекомендуется:
- определить контур СМЭВ, в который осуществляется обращение (разработческий, тестовый, продуктивный), для этого посмотреть вызываемый адрес сервиса и сопоставить с опубликованными в Актуальных адресах СМЭВ3;
- найти на Технологическом портале зарегистрированный в соответствующем контуре(тестовом или продуктивном) Вид сведений. Сверить содержимое блока MessagePrimaryContent c эталонным сообщением, опубликованным в руководстве пользователя Вида сведений — проверить, правильно ли указаны корневой элемент и целевое пространство имен корневого элемента;
- проверить срок действия ВС в карточке.
2. Текст ошибки: Попытка отправить сообщение, не соответствующее типу вида сведений.
Возникает на этапе проверки наличия вида сведений в рамках синхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
В рамках метода SendRequest отправлено сообщение в блоке MessagePrimaryContent которого указан корневой элемент ответа или для сообщения, отправляемого по методу SendResponse, указан корневой элемент запроса. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется:
- для запроса, отправляемого методом SendRequest проверить, что в блоке MessagePrimaryContent вложенный элемент соответствует корневому элементу запроса в соответствии со схемой Вида сведений, опубликованной в руководстве пользователя;
- для ответа отправляемого методом SendResponse проверить, что в блоке MessagePrimaryContent вложенный элемент соответствует корневому элементу ответа в соответствии со схемой Вида сведений, опубликованной в руководстве пользователя.
SMEV-402
Текст ошибки: Входящая очередь запрошенного типа сообщений, принадлежащая пользователю @CallerCertificate.getSubjectX500Principal().getName(X500Principal.RFC1779) не зарегистрирована в СМЭВ.
Возникает на этапе обработка сообщения в рамках синхронной обработки xml-сообщения, принятого методом GetRequest, GetResponse.
Причина | Пример |
1. Неверно указаны параметры фильтрации в тегах NamespaceURI и RootElementLocalName блока MessageTypeSelector (в том числе, если указанный ВС не зарегистрирован в нужной среде). 2. Информационная система Участника не зарегистрирована в СМЭВ 3, либо ИС отсутствует в необходимой среде. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется:
- проверить содержимое элементов NamespaceURI и RootElementLocalName блока MessageTypeSelector — целевое пространство имен и корневой элемент должны соответствовать зарегистрированному в СМЭВ 3 Виду сведений;
- проверить зарегистрирован ли данный ИС в той среде СМЭВ 3, в которой идет обращение;
- проверить зарегистрирован ли сертификат, которым подписано направленное сообщение, в соответствующей среде СМЭВ 3;
- получить серийный номер сертификата, указанного в блоке CallerInformationSystemSignature в элементе X509Certificate отправляемого сообщения (сохранить содержимое элемента с разрешением cer, открыть вкладку «Состав», получить значение из поля «Серийный номер»);
- убедиться, что ранее был направлен запрос в Ситуационный центр на регистрацию информационной системы с сертификатом из п.1 и получено положительное решение;
- если заявка ранее не направлялась — зарегистрировать запрос через Ситуационный центр и после получения положительного решения по заявке повторить отправку сообщения.
SMEV-403
1. Текст ошибки: Сообщение содержит не все вложенные элементы. Блок @tagname отсутствует либо пуст.
Возникает на этапе синхронной валидации xml-сообщения, принятого методами SendRequest, SendResponse, GetRequest, GetResponse.
Причина |
Пример |
Отправляемое сообщение не соответствует схемам Единого сервиса |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется:
- выполнить проверку сообщения с помощью инструмента «Проверка корректности xml-сообщения» в ЛК УВ;
- привести сообщение в соответствие схемам Единого сервиса — схемы опубликованы в Методических рекомендациях по работе со СМЭВ 3, а также могут быть получены с помощью ссылок в конструкции import в описании сервиса (wsdl);
- повторить отправку сообщения.
2. Текст ошибки: Сообщение содержит не все вложенные элементы. Один из блоков (MessagePrimaryContent, RequestRejected, RequestStatus) отсутствует либо пуст.
Возникает на этапе синхронной валидации xml-сообщения, принятого методами SendRequest, SendResponse.
Причина | Пример |
Отправляемое сообщение не соответствует схемам Единого сервиса |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется:
- выполнить проверку сообщения с помощью инструмента «Проверка корректности xml-сообщения» в ЛК УВ;
- привести сообщение в соответствие схемам Единого сервиса — схемы опубликованы в Методических рекомендациях по работе со СМЭВ 3, а также могут быть получены с помощью ссылок в конструкции import в описании сервиса (wsdl);
- повторить отправку сообщения.
3. Текст ошибки: Метка времени сообщения @timestamp не действительна.
Возникает на этапе синхронной валидации xml-сообщения, принятого методами GetRequest, GetResponse, GetStatus, GetIncomingQueueStatistics.
Причина | Пример |
Значение временной метки в сообщении отличается от текущего | <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется выполнить проверку значения времени в элементе Timestamp по методам Timestamp:
- Метод GetRequestRequest : GetRequestRequest — MessageTypeSelector — Timestamp
- Метод GetResponseRequest : GetResponseRequest – MessageTypeSelector — Timestamp
- Метод GetStatus : GetStatusRequest — Timestamp
- Метод GetIncomingQueueStatisticsRequest : GetIncomingQueueStatisticsRequest — Timestamp
Значение должно совпадать с текущим (допустимая дельта — 30 минут).
4. Текст ошибки: Бизнес-данные сообщения не соответствуют схеме, зарегистрированной в СМЭВ. MessageId = @Message_Id
Возникает на этапе Асинхронная валидация xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Отправляемое сообщение не соответствует схемам Вида сведений |
<ns2:AsyncProcessingStatus>
<ns2:OriginalMessageId>704b80da-2268-11e9-afd2-02579a2b356e</ns2:OriginalMessageId>
<ns2:StatusCategory>requestIsRejectedBySmev</ns2:StatusCategory>
<ns2:StatusDetails>Бизнес-данные сообщения не соответствуют схеме, зарегистрированной в СМЭВ.
MessageId = 704b80da-2268-11e9-afd2-02579a2b356e</ns2:StatusDetails>
<ns2:SmevFault xsi:type=""ns3:InvalidContent"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">
<Code>fed0:P:FED0_ASYNC_CORE2:TR:ASYNC:BSV:3</Code>
<Description>SMEV-403:Бизнес-данные сообщения не соответствуют схеме, зарегистрированной в СМЭВ.
MessageId = 704b80da-2268-11e9-afd2-02579a2b356e</Description>
<ns3:ValidationError errorPosition=""-1"">cvc-pattern-valid: Value '' is not facet-valid with respect to pattern
'[A-Za-z0-9]{1,32}' for type 'documentseriesType'.</ns3:ValidationError>
<ns3:ValidationError errorPosition=""-1"">cvc-type.3.1.3: The value '' of element
'tns:passportSeries' is not valid.</ns3:ValidationError>
<ns3:ValidationError errorPosition=""-1"">cvc-pattern-valid: Value '' is not facet-valid with respect to pattern
'[A-Za-z0-9]{1,32}' for type 'documentnumberType'.</ns3:ValidationError>
<ns3:ValidationError errorPosition=""-1"">cvc-type.3.1.3: The value '' of element 'tns:passportNumber'
is not valid.</ns3:ValidationError>
</ns2:SmevFault></ns2:AsyncProcessingStatus>
|
Рекомендуется:
- скачать схемы Вида сведений в карточке на Технологическом портале;
- выполнить валидацию содержимого блока MessagePrimaryContent отправляемого сообщения по схемам Вида сведения с помощью xml-валидаторов или сверить с эталонным сообщением, опубликованным в руководстве пользователя;
- исправить ошибки и повторить отправку сообщения.
SMEV-405
Текст ошибки: Входящая очередь «наименование очереди» сообщений, принадлежащая пользователю «мнемоника ИС», не зарегистрирована в СМЭВ.
Возникает на этапе Проверка наличия очереди ИС в СМЭВ в рамках синхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Очередь ИС не зарегистрирована в СМЭВ |
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется:
- убедиться, что сертификат, которым подписывается сообщение, зарегистрирован в СМЭВ;
- проверить, что указанная в тексте ошибки мнемоника ИС и ее очередь (общая или выделенная — NodeId) была зарегистрирована в СМЭВ;
- если были выявлены ошибки, исправить их (скорректировать мнемонику ИС, зарегистрировать ИС в СМЭВ, зарегистрировать сертификат, добавить выделенный узел ИС) и повторить попытку отправить запрос.
SMEV-406
Текст ошибки: Входящая очередь «мнемоника ИС_мнемоника узла» сообщений, принадлежащая пользователю «мнемоника ИС», деактивирована в СМЭВ.
Возникает на этапе проверки активации выделенного узла ИС в рамках синхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Выделенный узел (NodeId) ИС деактивирован |
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется создать обращение через СЦ с просьбой активировать выделенный узел ИС, приложив логи запроса и ошибки, указав номер обращения в рамках которого производилась регистрация узла ИС.
SMEV-500
Текст ошибки: Превышение пороговой продолжительности обработки вызова.
Возникает на этапе проверки EOL сообщения в рамках асинхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
Истекло установленное отправителем время жизни сообщения |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
<ns2:AsyncProcessingStatus>
<ns2:OriginalMessageId>e35b183b-2093-11e9-a8e6-aaaaaa2cac00</ns2:OriginalMessageId>
<ns2:StatusCategory>cancelled</ns2:StatusCategory>
<ns2:StatusDetails>Превышение пороговой продолжительности обработки вызова</ns2:StatusDetails>
<ns2:SmevFault><Code>fed0:P:FED0_ASYNC_CORE2:TR:ASYNC:PP:3</Code>
<Description>SMEV-500:Превышение пороговой продолжительности обработки вызова</Description>
</ns2:SmevFault></ns2:AsyncProcessingStatus>
|
Рекомендуется установить новое значение для элемента EOL и повторить отправку сообщения.
SMEV-501
Текст ошибки: Сообщение @AckTargetMessage не найдено среди неподтверждённых.
Возникает на этапе обработки сообщения в рамках синхронной обработки xml-сообщения, принятого методом Ack.
Причина | Пример |
Подтверждение получения сообщения с указанным MessageId было выполнено ранее или указанное значение MessageID некорректно |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется:
- убедиться что сообщение Ack отправлено в тот же контур СМЭВ 3 (разработческий, тестовый, продуктивный), в котором было получено сообщение GetRequest или GetResponse;
- извлечь значение MessageID из полученного методом GetRequest или GetResponse сообщения;
- в элементе AckTargetMessage сообщения AckRequest указать полученный MessageID и отправить в адрес Единого сервиса.
SMEV-502
Текст ошибки: Не найден получатель по виду сведений.
Возникает на этапе обработки получателя сообщения по виду сведений в рамках синхронной обработки xml-сообщения, принятого методом SendRequest.
Причина | Пример |
Неверно указан код маршрутизации либо его формат. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется:
- убедиться, что среди Поставщиков, получивших технологический доступ к Виду сведений, присутствует Поставщик с указанным в сообщении кодом маршрутизации;
- в случае неверного кода маршрутизации исправить и повторить отправку запроса.
SMEV-503
Текст ошибки: Отправитель сообщения не зарегистрирован.
Возникает на этапе проверки регистрации отправителя сообщения в рамках синхронной обработки xml-сообщения, принятого методом SendRequest, SendResponse, GetRequest, GetResponse, Ack.
Причина | Пример |
Информационная система Участника не зарегистрирована в СМЭВ 3 |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется:
- получить серийный номер сертификата, указанного в блоке CallerInformationSystemSignature в элементе X509Certificate отправляемого сообщения (сохранить содержимое элемента с разрешением cer, открыть вкладку «Состав», получить значение из поля «Серийный номер»);
- убедиться, что ранее был направлен запрос в Ситуационный центр на регистрацию информационной системы с сертификатом из п.1 и получено положительное решение;
- если заявка ранее не направлялась — зарегистрировать запрос через Ситуационный центр и после получения положительного решения по заявке повторить отправку сообщения.
SMEV-504
Текст ошибки: Доступ запрещён.
Возникает на этапе проверки доступа отправителя к виду сведений в рамках асинхронной обработки xml-сообщения, принятого методом SendRequest либо SendResponse.
Причина | Пример |
ИС не добавлена в СМЭВ 3 в качестве потребителя для запрашиваемого ВС |
<AsyncProcessingStatus>
<OriginalMessageId>9f5ac848-1fad-11e9-bd88-7901cd343bf5</OriginalMessageId>
<StatusCategory>requestIsRejectedBySmev</StatusCategory>
<StatusDetails>Доступ запрещён.</StatusDetails>
<SmevFault><ns2:Code>fed0:P:FED0_ASYNC_CORE2:TR:ASYNC:ACSM:1</ns2:Code>
<ns2:Description>SMEV-504:Доступ запрещён.</ns2:Description>
</SmevFault></AsyncProcessingStatus>
|
Рекомендуется:
- получить серийный номер сертификата, указанного в блоке CallerInformationSystemSignature в элементе X509Certificate отправляемого сообщения (сохранить содержимое элемента с разрешением cer, открыть вкладку «Состав», получить значение из поля «Серийный номер»);
- проверить корректность указания целевого пространства имен и корневого элемента Вида сведений (содержимое MessagePrimaryContent);
- убедиться, что ранее был направлен запрос в Ситуационный центр на получение доступа к Виду сведений из п.2 для ИС, зарегистрированной в соответствующем контуре СМЭВ (разработческий, тестовый, продуктивный) из п.1;
- если заявка ранее не направлялась — зарегистрировать запрос через Ситуационный центр и после получения положительного решения по заявке повторить отправку сообщения.
SMEV-505
Текст ошибки: Превышение пороговой продолжительности обработки вызова.
Возникает при получении на коннекторе клиентов сообщения ответа (SendResponseRequest), в рамках синхронной проверки.
Причина | Пример |
Норматив продолжительности подготовки сообщения-ответа превышен на n секунд m миллисекунд . Значение норматива продолжительности N секунд. |
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> |
Рекомендуется обратить внимание на следующее: ответ на запрос по версии вида сведений не сможет быть направлен с нарушением норматива продолжительности подготовки сообщения-ответа.
SMEV-600
Текст ошибки: Очередь, в которую должно быть отправлено сообщение, переполнена.
Возникает на этапе проверки квоты на количество сообщений в рамках синхронной/асинхронной обработки xml-сообщения, принятого методом SendRequest.
Причина | Пример |
Ошибка связана с ограничением на допустимое количество сообщений в очереди запросов ИС-получателя сообщения и вызвана несвоевременным разбором входящей очереди ИС получателя запроса. |
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
<AsyncProcessingStatus>
<OriginalMessageId>e86b5350-1995-11e9-b078-0050568925e4</OriginalMessageId> <StatusCategory>requestIsRejectedBySmev</StatusCategory> |
Рекомендуется повторить отправку сообщения с вложением через промежуток времени или обратиться к получателю запроса через СЦ.
SMEV-60
Текст ошибки: Ошибка СМЭВ. Обратитесь в службу технической поддержки.
Возникает на этапе проверки в рамках синхронной или асинхронной обработки xml-сообщения, принятого методами SendRequest, SendResponse, GetRequest, GetResponse, Ack.
Причина | Пример |
1. Некорректная структура сообщения 2. Отсутствует или некорректно заполнен элемент to сообщения-ответа. 3. Сообщение направлено неверным методом (например, если запрос направлен по методу SendResponse) 4. Технологические работы в СМЭВ |
<soap:Envelope |
Рекомендуется:
- выполнить проверку сообщения с помощью инструмента «Проверка корректности xml-сообщения» в ЛК УВ;
- в случае ошибок привести сообщение в соответствие схемам Единого сервиса — схемы опубликованы в Методических рекомендациях по работе со СМЭВ 3 (также могут быть получены с помощью ссылок в конструкции import в описании сервиса (wsdl)) и повторить отправку сообщения;
- проверить, что сообщение направляется нужным методом (запрос — при помощи метода SendRequest, ответ — при помощи метода SendResponse);
- для успешного инициирования процесса обмена, необходимо направлять запрос при помощи метода SendRequest, отправив запрос (SendRequestRequest), после чего запрос пройдет проверки и будет поставлен в очередь запросов поставщика ВС. Далее поставщик при помощи метода GetRequest совершает выборку запроса из очереди и формирует конверт SendResponseRequest;
- убедиться, что в соответствующем контуре СМЭВ на момент отправки сообщения не проводились технологические работы (информация о работах публикуется в разделе «Новости».