[[https://www.revelation.com/|Sign up on the Revelation Software website to have access to the most current content, and to be able to ask questions and get answers from the Revelation community]]
==== Multi threading in OI (OpenInsight 32-bit Specific) ====
=== At 25 NOV 2002 06:51:04PM Wilhelm Schmitt wrote: ===
{{tag>"OpenInsight 32-bit Specific"}}
How can multithreading be implemented in OI32?
Is there some white paper available with some examples?
Thanks in advance
Wilhelm
----
=== At 25 NOV 2002 07:37PM Pat McNerthney wrote: ===
Wilhelm,
The current product does not multi-thread.
For now, the closest alternative is to spawn another OpenEngine and send it commands to perform.
Pat
----
=== At 26 NOV 2002 02:08PM Wilhelm Schmitt wrote: ===
Pat,
We have to develop an application environment with 1000+ concurrent users, drawing data from 5 different servers. We thought to equip each server with an unlimited OI4/JOI license and use pure Java clients.
With your answer in mind, our basic question is now:
Is OI4/JOI capable of handling client-server applications with distributed databases?
Best regards
Wilhelm
----
=== At 26 NOV 2002 02:58PM Pat McNerthney wrote: ===
[i]Is OI4/JOI capable of handling client-server applications with distributed databases?[/i]
I do not know that much about JOI and how it orchestrates its access to OpenEngine, hopefully Dave will chime in.
I do know that OpenInsight itself, or a straight browser based application is capable of such an application.
Pat
----
=== At 26 NOV 2002 03:07PM Bob Carten wrote: ===
Wilhelm:
Joi will call OECGI.
OECGI can start a different engine for each JOI call,
so in effect you are getting multi threading, but the web server is managing the threads.
Hope this helps,
Bob
----
=== At 26 NOV 2002 03:45PM Wilhelm Schmitt wrote: ===
Bob,
How can I assign priorities in multitasking?
Let's say we have 2 tasks running in different sessions each, how do I establish priorities, so that the printing task in window 1 gets on hold, and a search in window 2, which has become urgent, gets on top of the priority list?
Is it possible for the CGI to interrupt a running task ?
Best regards
Wilhelm
----
=== At 27 NOV 2002 05:02AM Andrew McAuley wrote: ===
By launching individual engines to process each separate request you are effectively timeslicing between the different processes and leaving prioritisation down to the operating system. By default the OS should timeslice equally between the sessions. However there is nothing (short of extreme technical complexity)to prevent a developer launching an engine then adjusting it's priority programmatically. This might be overkill for all but the most sensitive applications though.
[url=http://www.sprezzatura.com" onMouseOver=window.status= Click here to visit our web site?';return(true)]The Sprezzatura Group[/url]
[i]World Leaders in all things RevSoft[/i]
[img]http://www.sprezzatura.com/zz.gif[/img]
----
=== At 27 NOV 2002 01:59PM Bob Carten wrote: ===
Wilhelm
The OECGI can get multiple asynchronous threads going, but these threads have been spawned by the web server, not OI. Managing thread priorities / thread blocking is something you would have to implement yourself. Java provides good threading capabilities, and the Windows API will expose properties of currently running process ( see WMI docs, I think ). But Andrew's phrase 'extreme technical complexity' is appropriate. Begin by relying on the operating system and OpenInsight's record locking mechanism, do some volume testing, learn where you have issues.
If you feel that a single server cannot handle all the simultaneous sessions then you can distribute processing to remote engines running on other servers in a farm.
Bob
Bob
----
=== At 27 NOV 2002 02:13PM G Van Niekerk wrote: ===
Just another few points.
We are using Html via PHP to access the engine.
This was setup to allow mutli engines to be opened at any time.
We can open up any number of engines depending on the number of licences, currently the system is setup for around 256 users.
Unlimitted licences is now only 256 users.
Each user that logs in gets assigned a new engine with its unique name. The engines can also be hidden from the taskbar.
What happens then is that the engine will process a given task ie engine 1 can process a search while engine 2 process an order and engine 3 sends an email. etc
What you have to consider with regards printing is what you will be printing and how,
If you simply want to create an HTML document then it will work OK as you can show this in a seperate browser, and it looks really nice.
If however you want to use oipi you cannot as far as we can determine at this point open up oipi from a new engine (probbaly needs more testing from us)
We have created a queue type program where we only print using the main engine. This will also only print to a local or TCPIP connected printer.
We are waiting for JOI2.2 to be release then will do some testings with JOI re whether to use oecgi or php or maybe something else to access the engine.
Will be sending some details on what we have done to Revelation.
I you want more details please contact me directly.
Hope it helps.
Gerry van Niekerk
gerry@csoft.co.nz
----
=== At 27 NOV 2002 09:06PM Wilhelm Schmitt wrote: ===
Gerry,
thanks for your comments. Thanks also to Bob and Andrew.
Regarding printing we had an experience some time ago with inet_rlist in 16bit OI3.7. On small files it worked OK, but on a bigger file, once started we were not able to stop it, but manually.
Our problem there was with certain "unfortunate" selections. After the web server timed out, OI continued processing for quite some time and left the other requests waiting in the queue.
In this occasion we are no longer concerned about the above routine, but more about the possibility, that there might be other OI internal routines (especially selections) which cannot be interrupted.
Regards
Wilhelm
[[https://www.revelation.com/revweb/oecgi4p.php/O4W_HANDOFF?DESTN=O4W_RUN_FORM&INQID=NONWORKS_READ&SUMMARY=1&KEY=6F21FF12C600A0D185256C7C008304BC|View this thread on the forum...]]