Error (No space left on device) while running TIBCO BusinessEvents FTLChannel example in Docker
book
Article ID: KB0077704
calendar_today
Updated On:
Products
Versions
TIBCO BusinessEvents Enterprise Edition
5.5.0
Description
When running TIBCO BusinessEvents (BE) FTL Channel example as Docker container you encounter error (No space left on device) .
Below is complete error trace :- ============ [container.standalone] Operating system error com.tibco.ftl.exceptions.FTLOSException: Operating system error at com.tibco.ftl.jni.NativeRealm.createNativeSubscriber(Native Method) at com.tibco.ftl.jni.NativeRealm.createSubscriber(NativeRealm.java:158) at com.tibco.ftl.jni.NativeRealm.createSubscriber(NativeRealm.java:133) at com.tibco.cep.driver.ftl.FTLDestination.bind(FTLDestination.java:241) at com.tibco.cep.runtime.session.impl.RuleServiceProviderImpl.bind(RuleServiceProviderImpl.java:1241) at com.tibco.cep.runtime.session.impl.RuleServiceProviderImpl.startAll(RuleServiceProviderImpl.java:1212) at com.tibco.cep.runtime.session.impl.RuleServiceProviderImpl.configure(RuleServiceProviderImpl.java:266) at com.tibco.cep.container.standalone.BEMain.jumpStart(BEMain.java:172) at com.tibco.cep.container.standalone.BEMain.main(BEMain.java:71) Caused by: com.tibco.ftl.FTLException: TIBCO Exception: Error Code = Operating system error OS Error Code = 28: No space left on device Description = None Thread Name = be-engine Stack Trace: _tibShmRegion_Create, 120 openSenderObjects, 2833 _tib1NShm_Open, 2915 _tibTransportShm_ContextCreate, 296 _tibTransportShm_Create, 339 _tibTransport_Create, 647 _tibTransport_CreateFromString, 731 _tibRealm_GetTransportByName, 578 _tibSubscriber_CreateInternal, 2731 tibSubscriber_Create, 2842
... 9 more ============
Issue/Introduction
Error (No space left on device) while running FTLChannel example in BE Docker
Environment
Docker Environment
Resolution
The error (OS Error Code = 28: No space left on device) was seen because /dev/shm (shared memory) on BE container is getting full. FTL in docker doesn’t support use of shared memory and you need to use DTCP protocol, so we need to make changes to BE project to satisfy this requirement. 1.) Start docker container for FTL Realmserver and Tibagent using pre-built images shipped with FTL 5.3.0 ($FTL_HOME\docker-images) a.) $ docker load -i ftl-tibagent-5.3.0.dockerimage.xz b.) $ docker load -i ftl-tibrealmserver-5.3.0.dockerimage.xz c.) $ docker run -d -p 13131:13131 -p 13134:13134 --net=my-network --name myrealmserver ftl-tibrealmserver:5.3.0 --client.url discover:// d.) $ docker run -d --net=my-network --name myagent --restart=unless-stopped -p 13139:13139 -p 13140:13140 -v /var/run/docker.sock:/var/run/docker.sock ftl-tibagent:5.3.0 -rs myrealmserver:13131
2.) Configure FTL Realmserver :- a.) access realmserver from browser using exposed port 13131 i.e. http://localhost:13131 b.) set ‘Edit Mode’ on c.) select Actions > Upload config to upload attached realm.json * d.) deploy
3.) Set up BE project :- a.) use attached BE studio project ** and create new EAR b.) use new ear to create BE application image c.) start FTLChannel server & then client processing units (PUs) and see if the connectivity works. $ docker run --net=my-network --name=server -e PU=server ftlchannel:v01 $ docker run --net=my-network --name=client -e PU=client ftlchannel:v01
Note :- Make sure you have same --net for all containers (both BE and FTL) so that they can communicate with each other.
* realm.json has the following changes for DTCP :- tibrecv > tcp > tibrecv-endpoint (Receive/Send/Receive Inbox/Send Inbox checked) tibreply > tcp > tibreply-endpoint (Receive/Send/Receive Inbox/Send Inbox checked) tibsend > tcp > tibsend-endpoint (Receive/Send/Receive Inbox/Send Inbox checked)
** changed ‘Instance Name’ = tcp for each destination in FTLChannel for DTCP.
Attachments
Error (No space left on device) while running TIBCO BusinessEvents FTLChannel example in Docker
get_app