|
5 | 5 | :domain: github.com/FirebirdSQL/Butler |
6 | 6 | :shortname: 4/FBSP |
7 | 7 | :name: Firebird Butler Service Protocol |
8 | | -:status: raw |
| 8 | +:status: draft |
9 | 9 | :editor: Pavel Císař <pcisar@users.sourceforge.net> |
10 | 10 |
|
11 | 11 | The Firebird Butler Service Protocol (FBSP) defines formal rules for exchanging messages between Butler Service and its Client over Service Sockets as they are defined in |FBSD|. |
@@ -283,7 +283,7 @@ The REQUEST message is a `Client` request to the `Service`. |
283 | 283 | 3. The `Service` MUST respond to this message by sending REPLY_ or ERROR_ message with the same `Request Code`_ in type-data_ field. |
284 | 284 | 4. The `Service` MAY send additional subsequent messages in response to the same REQUEST message. |
285 | 285 | 5. The type and number of messages in reply to particular request, as well as method for indicating the end of the message stream to the `Client` SHALL be defined by the API for particular `Request Code`_. |
286 | | -6. When ACK-REQUEST_ flag is set in received REQUEST message, the `Service` MUST respond according to rules for ACK-REQUEST_ flag handling. This ACK response MUST be immediate, before further processing of the request. |
| 286 | +6. When ACK-REQUEST_ flag is set in received REQUEST message, the `Service` MUST respond according to rules for ACK-REQUEST_ flag handling. |
287 | 287 |
|
288 | 288 | .. seealso:: |
289 | 289 |
|
@@ -328,8 +328,9 @@ The CANCEL message represents a request for a `Service` to stop processing the p |
328 | 328 | 1. One CANCEL message is a request to end the processing of one active request. |
329 | 329 | 2. The content of type-data_ field in this message is not significant. |
330 | 330 | 3. The message MUST have a data-frame_ with specification of the request whose processing is to be terminated. The data-frame_ MAY contain additional information. |
331 | | -4. The `Service` SHALL terminate specified active request of the `Client`, and send the REPLY_ message to the `Client` when cancellation is successfully finished. The REPLY_ message MAY have a data-frame_ with additional information. |
332 | | -5. If the `Service` can not stop processing the request whose cancellation is requested, it MUST respond with the ERROR_ message. |
| 331 | +4. The `Service` MUST respond with the ERROR_ message with appropriate `Error Code`_. |
| 332 | +5. If `Service` successfully terminated specified active `Client` request, the ERROR_ message MUST have `Request Canceled` `Error Code`_. |
| 333 | +6. The ERROR_ message MAY have a data-frame_ with additional information. |
333 | 334 |
|
334 | 335 | .. seealso:: |
335 | 336 |
|
@@ -514,7 +515,7 @@ The `Service API` consists from `Interfaces` (API contracts) that consists from |
514 | 515 | The `Request Code` uniquely identifies the `Service` functionality (an API call). This specification define following rules for request codes: |
515 | 516 |
|
516 | 517 | 1. The first (more significant) byte of type-data_ field SHALL contain the `Interface identification number` assigned by `Service` to particular `Interface` it supports (see :ref:`Data frames - WELCOME <welcome-dataframe>`). |
517 | | -2. The second (less significant byte) byte of type-data_ field SHALL contain the `Interface operation code`. |
| 518 | +2. The second (less significant) byte of type-data_ field SHALL contain the `Interface operation code`. |
518 | 519 |
|
519 | 520 |
|
520 | 521 | .. _protocol-buffer: |
@@ -747,6 +748,10 @@ Errors indicating that particular request cannot be satisfied |
747 | 748 | :16 - Insufficient Storage: |
748 | 749 |
|
749 | 750 | The service is unable to store data needed to successfully complete the request. |
| 751 | + |
| 752 | +:17 - Request Canceled: |
| 753 | + |
| 754 | + The client's request was canceled by CANCEL_ request. |
750 | 755 |
|
751 | 756 |
|
752 | 757 | Fatal errors indicating that connection would/should be terminated |
|
0 commit comments