Support contract can be signed on individual basis. The contract will give you support with guaranteed response time and delivery conditions defined according to your business needs.
Please communicate problems, comments and suggestions to
SC version schema (software version)
SC version has the format V9.9-999 e.g. V3.2-023 means: 3 = Release number, 2 = Version number, 023 = Revision number. The detailed description is in documentation SC_0_SCMP. Java applications using the SC API can get the current version as SCVersion.CURRENT.toString(). There is no reason to set it or to check it when the SC API is used.
Processing:
The Client must set its own version number as scVersion attribute and send it in the ATTACH message. The Server must set its own version number as scVersion attribute and send it in the REGISTER_SERVER message. In SC Java API for client and server this is done behind the scenes and does not need any care. When SC receives these messages it performs the compatibility check. If the SC property root.commandValidationEnabled=false than version check is not done! In case the versions are not compatible it will send an error back to the client or server. The error message contains the precise reason what is incompatible and what has been passed. E.g. scErrorCode = 423, scErrorText = "Incompatible SC version nr. [V5.4-456]" In SC Java API for client and server the attach() and register()methods will throw a validation exception. In cascaded configurations the attach() does not reach all cascaded components but only the top level. For this reason the validation exception mentioned above can possibly be thrown also by the subscribe() or createSession() methods. In other APIs the error message must be handled properly and signaled to the caller.
Compatibility rules:
# in the message |
SC version |
Outcome |
3.2-023 |
3.2-023 |
Is compatible |
3.2-021 |
3.2-023 |
Is compatible |
3.1-006 |
3.2-023 |
Is compatible |
3.2-025 |
3.2-023 |
Is not compatible. The client or server may utilize new features unknown here. |
3.3-005 |
3.2-023 |
Is not compatible. The client or server uses new functions unknown here. |
2.2-023 |
3.2-023 |
Is not compatible. Possibly other incompatible interface |
4.0-007 |
3.2-023 |
Is not compatible. |
In real life this means:
- New SC can communicate with older client or server (upward compatibility)
- Old SC cannot communicate with newer client or server and must be updated
Practical usage:
The revision number is incremented every time after the software has been delivered (tagged). The version number is incremented when a new compatible features has been added. Release number is incremented when the new software is incompatible or when the software was completely redesigned.
SCMP version schema (protocol version)
SCMP version is part of the message headline and so a part of every message. It has the format 9.9 e.g. 2.5 means: 2 = Release number, 5 = Version number. The detailed description is in the SCMP documentation. Java applications using the SC API can get the current version as SCMPVersion.CURRENT.toString(). This is just for information. There is no reason to set it or to check it when SC API is used.
Processing:
The sender must set the version number in each message. The receiver must check this number against its own SCMP Version number every time a message is received! This is done in SC Java API in all components, e.g. in the Client, SC and in the Server. Other APIs must implement the same logic. When the receiver detects an incompatible number, it must discard the message and log an error. The receiver must not sent back any error response to the sender. This would cause another error.
Compatibility rules:
# in the message |
SC version |
Outcome |
2.5 |
2.5 |
Is compatible |
2.5 |
2.6 |
Is compatible |
2.7 |
2.5 |
Is not compatible. Message may have new headers unknown to the receiver |
1.4 |
2.5 |
Is not compatible. Old message structure and possibly not understood here. |
2.5 |
1.8 |
Is not compatible. New message structure and surely not understood here. |
In real life this means:
- New receiver understands older messages (upward compatibility)
- Old receiver cannot understand newer messages and must be updated
Practical usage:
The version number will be incremented when a new element (header) will be added or when a change compatible to the previous version was done. Release number is incremented when the new protocol is incompatible or it was redesigned completely.