Use route_vprod() to send a transaction to the SFM and route it directly to a single production object before sending the transaction to a delivery AIM.
When the SFM receives the transaction, it:
Checks the transaction against the production object’s field objects (that is, does the transaction match these definitions in field sizes and datatypes?);
Runs any qualification objects attached to the field objects against the transaction data, then, if required;
Runs the production object’s qualification objects against the transaction data.
If the transaction passes all these tests, the SFM writes it to the transaction log file. If the transaction does not pass any one of these tests, the SFM writes the transaction to the unrouteable log file and returns a value of -6 to the acquisition AIM.
The acquisition AIM is in charge of responding to the endpoint if routing succeeded or failed by composing an acknowledgement or negative ACK and sending the peer.
After the SFM writes the transaction into its log file, it returns a value of 1 to the acquisition AIM to indicate that the transaction was accepted. The acquisition AIM can continue to gather data without waiting for the delivery AIMs to finish transaction processing.
route_vprod(int [flavor] Flavor, string [in] SRCRef, string [in] ProdName, {string | blob} [in] Data);
Parameter |
Description |
---|---|
Flavor |
The flavor assigned to the SFM module that should receive the data. If you are running only one copy of the SFM, use a value of zero in this argument. |
SRCRef |
The Source Reference Name. A user-supplied reference name for the current Acquisition AIM. Allowable characters include A – Z, a – z, 0 – 9. The string datatype is required. |
ProdName |
The name of a production object that should process the data. The name can be a maximum of 32 characters plus a null character. Allowable characters include A – Z, a – z, 0 – 9. A String or blob datatype is required. |
Data |
A blob or string field that contains the transaction’s data. |
Integer.
Value |
Description |
---|---|
> 0 |
The SFM has accepted the record and has written it to the transaction log file. |
0 |
General error. Check the error log and the standard UNIX “errno” field. |
-1 |
The transaction could not be passed to the SFM. Your program should check the unrouteable error log to find out why this occurred. |
-2 |
The SFM could not find the name of the production object in its configuration file. |
-3 |
The SFM could not process the transaction because the log file was full. |
-4 |
The SFM received a transaction larger than the log file’s transaction size. |
-5 |
The SFM refused the record because it is in Refuse mode. |
-6 |
The transaction data did not pass the field object validation or production object qualification checks in the referenced production object. |
-7 |
There are no valid destinations for the production object for which the transaction qualified. Occurs when the production object uses the setDestName and/or the setDestNameData dynamic routing built-ins to override the production object’s configured destinations, but the built-ins do not specify valid destinations. |
-8 |
The SFM could not process the transaction because an invalid destination was specified with a dynamic routing built-in filter function. |
Copyright © 2005. Sybase Inc. All rights reserved. |
![]() |