followup on qrun (lab) crash
its related to the cleanup code (kill__ again). sometimes the servers are not actually cleaned. If so, next qrun will hang. If cleaned, then fine. This may be affected by all my ryzen cpu cores (6 hyper threading cores free though) being busy on tasks. Another potential issue is that the servers load config/startup.ijs which is probably unnecessary (though as default, profile.ijs is ok). Trimming as much default load as possible is worthwhile for "task multiplexing" ________________________________ From: 'Pascal Jasmin' via Programming <[email protected]> To: "[email protected]" <[email protected]> Sent: Thursday, September 28, 2017 7:14 PM Subject: Re: [Jprogramming] zmq - big step for J socket services its working pretty well, A suggestion for generic "server error" would be to return the J error from the J server instead. Useful for the examples you are showing now. (basically show lse__ as client response) The labs and examples do eventually hang if repeated enough though. A repeated crash on the zmq lab occurs after the lines kill__c '' kill__d '' servers_jcs_ '' still shows the c port open 65201 then "jcst port" hangs. killp_jcs_ 65201 removes it from servers the kill__c command later in the lab does not crash. if qrun is repeated enough times, it will also hang the j session. ________________________________ From: Eric Iverson <[email protected]> To: Programming forum <[email protected]> Sent: Thursday, September 28, 2017 1:04 PM Subject: [Jprogramming] zmq - big step for J socket services New addons net/zmq and net/jcs are available. They require 806. The zmq addon has bindings between J and the zmq shared library. The jcs addon has J client/server tools built on the zmq request/reply pattern. These addons make it much easier and with far less code to provide high-performance, robust, and scalable socket services. Start with 806-beta-6 installed from the latest zip packages. Then be sure you have the latest base library and the net/zmq and net/jcs addons installed. An easy way to get started is to run the jcs lab. start J load'labs/labs' lab'~addons/net/jcs/jcs_lab.ijs' step through the lab The lab will let you know if you need to install zmq and where to look for info. Sharing zmq install hints in the forum could save others some trouble. *** Among other things, jcs makes it easy to start other J tasks and to use them as servers. The lab includes a simple example of starting multiple J tasks to service a queue of jobs. *** from the jcs lab zmq is an api built on top of sockets it is available across platforms and removes almost all the mundane and critical chores in building a solid, high-performance, scalable server if unfamiliar with zmq, it worth looking at: www.zeromq.org get an overview with: zguide.zeromq.org/page:all if zmq is not installed, you'll have to look at: zeromq.org/intro:get-the-software ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
