Sterling OMS Creating Integration Server
In this post we are going to learn about Sterling OMS integration server. How to create Sterling Integration Server ? and what is the use of integration server.
You can read below post to get more information on agent vs integration servers.
Agent Server vs Integration Server
Sterling OMS Creating Integration Server
Integration Server : Any service created as asynchronous service using SFD (Service Definition Framework) can be called as integration server. Has good error handling mechanism (Reprocess Option).
- Mainly used for reading message from queue (posted by external system or Middleware) and perform any particular process (Order Creation / Item Creation).
- Integration Server processes message instantly as soon as message received into queue.
- Can be configured with multiple thread
- Can be configured with multiple instance
Example:
- OrderCreationServer – Read message from queue and calls createOrder API
- ProductCreationServer – Read message from queue and calls manageItem API to create item
Steps Involved
- Create Connection Factory (AGENT_QCF) in Weblogic / Websphere / TIBCO
- Create Queue (CreateOrder) in weblogic in Weblogic / Websphere / TIBCO
- Create synchronous service to drop message to Queue (Needed for testing only)
- Create new asynchronous service to consume message from Queue
Save the service configuration
- Call Service DropCreateOrderMsg to Drop message using HTTP API tester
<?xml version="1.0" encoding="UTF-8"?> <Order EnterpriseCode="Matrix-R" ShipToID="" ShipNode="Matrix_WH1" OrderName="Demo2018012801" PriorityCode="" BillToID="" FreightTerms="3rd Party" SellerOrganizationCode="Matrix-R" DocumentType="0001" BuyerOrganizationCode="" CustomerPONo="J0380257" ReceivingNode="" EnteredBy="EDI" ApplyDefaultTemplate="Y" CustCustPONo="J0380257"> <PersonInfoShipTo ZipCode="71303" City="Alexandria" DayFaxNo="" State="LA" EMailID="NA" Country="US" Company="SYSTEMS" DayPhone="999-999-0100" AddressLine6="" AddressLine1="Address1" AddressLine4="" AddressLine3="" AddressLine2="" AddressLine5="" FirstName="TECH" MiddleName="" LastName="" EveningPhone="" EveningFaxNo="" OtherPhone="" Beeper="" JobTitle="" MobilePhone="" /> <PersonInfoBillTo ZipCode="63045" City="Earth City" Department="" DayFaxNo="" State="MO" EMailID="" Country="US" Company="Company Name" DayPhone="999-999-999" AddressLine6="" AddressLine1="Address1" AddressLine4="" AddressLine3="" AddressLine2="" AddressLine5="" FirstName="First" MiddleName="" LastName="LastName" JobTitle="" EveningPhone="" EveningFaxNo="" OtherPhone="999-999-999" Beeper="" MobilePhone="" /> <OrderLines> <OrderLine OrderedQty="1.0" ShipNode="Matrix_WH1" PrimeLineNo="1" ShipToID=""> <Item ItemID="100001" ItemDesc="Item Description" ProductClass="Good" /> <OrderLineTranQuantity TransactionalUOM="EACH" /> </OrderLine> </OrderLines> </Order>
- View Message in queue by login into Weblogic Queue Console
- Start the integration server by running command (From OMS bin folder) startIntegrationServer.cmd CreateOrderServer
- You can see message from queue been consumed and createOrder API been called by integration server
- If any error during this process, you can see entry been made to YFS_INBOX and YFS_REPROCESS_ERROR table for reprocessing.
Sterling OMS Interview Questions on Integration Server
- What will happen when integration server configured with thread count 3 ? Answer : 3 instance of thread will be created and connected with queue. So queue will have consumer count as 3
- What will happen when integration server configured with thread count 3 and instance 3 ? Answer : 3*3 number of thread will be created and connected with queue. So queue will have consumer count as 9
- How to find all the integration servers ? Answer : select server_name, transport_type_key from yfs_server where server_type=’00’;
- How to find associated transactions to given agent server ?
Answer : select distinct yt.TRANNAME,yt.PROCESS_TYPE_KEY from YFS_AGENT_CRITERIA yac, yfs_server ys, yfs_transaction yt
where
ys.server_key=yac.server_key and
ys.SERVER_NAME=’SearchAgent’ and
yt.TRANSACTION_KEY = yac.TRANSACTION_KEY and
ys.server_type=’01’; — agent server - How to find associated service names to given integration server ?
Answer : select yf.flow_name, yf.FLOW_GROUP_NAME from yfs_flow yf, yfs_sub_flow ysf, yfs_server ys
where
ys.server_key=ysf.server_key and
yf.flow_key = ysf.flow_key and
ys.SERVER_NAME=’CreateOrderServer’ and –server name
ys.server_type=’00’; –integration server - How to reprocess when exception occurs while processing message using integration server ? Answer : Reprocess checkbox should be selected under Exception tab while configuring Async Service configuration
- How to find recent reprocessable error message using query ? Answer : select * from yfs_inbox where error_type=’REPROCESS’ and active_flag=’Y’ order by 1 desc
- How YFS_REPROCCESS_ERROR and YFS_INBOX tables connected ? what is the relationship between these 2 tables ? Answer : select * from yfs_reprocess_error where exceptionid in (select inbox_key from yfs_inbox where error_type=’REPROCESS’ and active_flag=’Y’) order by 1 desc
- How to manually reprocess error from screen ? Answer : From menu option System — Exception Console; Search for the error edit the XML as required and perform reprocess
- What are all the different status associated to reprocessing error ? Answer : When error created, initial status will be Initial and when reprocess option clicked status changed to PendingReprocess and once fixed changed to Status Fixed
- Can reprocess these integration errors using standard API ? Answer : We can reprocess using reprocessIntegrationError API
Conclusion : This post helps to understand integration server in Sterling OMS. Please share your feedback at support@activekite.com OR comment in the post.
The content is simple and crystal clear for understanding. Thank you!
kavi, thanks for nice comment. pls share feedback to improve better. thanks again.
Pingback: Sterling OMS Creating Weblogic Queue - Learn IBM Sterling Order Management System
how does a reprocessing an exception actually happens?
Say, there is an exception raised, we have modified the service, now when we reprocess it from console, how is the integ server is getting triggered? is the message posted back in the queue? how? if not, how is reprocessing working?
Shubham,
Thanks for the question. Every time an integration server started, a java timer thread started. This timer process queries yfs_reprocess_error table with flow_name.
here flow_name is service name (Integration Server). If any message found with status “Pending for reprocess” takes it and process directly using this service. we are not 100% sure if the message is processed by dropping into queue. We will validate and confirm.
If the service name changed, old record in yfs_reprocess_error will not be picked by the timer process. Hope this helps !!!
Admin,
Shubham is asking about to whether We can able to process or not the old mesg.,, after changing the Service .
Just to re-process that Old mesg., we have another way we can acheve.
In this case, We need to take the old mesg., keep it on Desktop and once we change the Service we need to call this IntegServer (by Sync) through API tester.. we can able to process.. If that old mesg., is valid as per the new Service then it will get process
…But through re-process..we need to test . Thanks