Error (No space left on device) while running TIBCO BusinessEvents FTLChannel example in Docker

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