RE: [U2] Socket API problem

2007-08-04 Thread Jeff Powell
Nick,

Would device licensing be useful in your environment?

We have device licensing and with this all outside connections from the
same IP address only consume 1 license. We use this scenario to have
several uniobject clients (java servlets and applications) run from a
server and therefore only using one license per machine rather than per
process.

Jeff

On Thu, 2007-08-02 at 08:46 -0400, Nick Cipollina wrote:

> All of your suggestions are very good, the problem is that all of these
> solutions will introduce too much overhead.  I know that a lot of the
> overhead is very, very minimal, but we cannot afford ANY overhead at
> all.
> 
> Thanks,
>  
> Nick Cipollina
> 
> -Original Message-
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Craig Bennett
> Sent: Thursday, August 02, 2007 6:38 AM
> To: u2-users@listserver.u2ug.org
> Subject: Re: [U2] Socket API problem
> 
> Hi Nick,
> 
> I don't have an answer to your licensing problem, but have you 
> considered running your listener from inetd or a similar superserver?
> 
> In this setup your inetd daemon (or service on windows) listens on your 
> known port, when a request comes in the superserver starts a UV process 
> to handle the incoming request (received on stdin so get the data with 
> INPUT or GETS) send your response using print.
> 
> This is slightly slower per request than prestarting all your phantoms 
> but you only use as many licences as your peak load and if you have one 
> of the more advanced inetd versions you can limit the maximum number of 
> simultaneous requests (other requests will be queued by inetd).
> 
> 
> I have implemented a HTTP server using this setup and other than the uv 
> licensing cost it works well.
> 
> 
> regards,
> 
> 
> Craig
> ---
> u2-users mailing list
> u2-users@listserver.u2ug.org
> To unsubscribe please visit http://listserver.u2ug.org/
> 
> 
> CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is 
> for the sole use of the intended recipient(s) and may contain confidential 
> and privileged information. Any unauthorized review, use, disclosure, or 
> distribution is prohibited. If you are not the intended recipient, please 
> contact the sender by reply e-mail and destroy all copies of the original 
> message.
> ---
> u2-users mailing list
> u2-users@listserver.u2ug.org
> To unsubscribe please visit http://listserver.u2ug.org/
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] Socket API problem

2007-08-04 Thread Don Kibbey
As the only problem seems to be the licensing method, I think I would
try to engage IBM to see what the options are.  Perhaps a per
processor license could be worked out.

-- 
Don Kibbey
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] Socket API problem

2007-08-02 Thread Glen Batchelor
Nick,

 Do you have to have synchronous communications or can you get by with stale
messaging? If you can packetize the data in your protocol, then check out
the MVWWW core. (http://mvwww.sourceforge.net) I gave up, long ago, on MV
socket processing and decided to go with a file I/O architecture when
writing this HTTP service replacement for . The
clients (in this case CGI applications), contact a spooler via socket and
then the spooler drops a request file into a queue directory. The spooler
then waits for a certain amount of time for a response file or returns a
wait error if no response is seen.

The file spooling is structured like this:

/spool/
/spool/requests/
/spool/responses/

 You can stop and start MV phantoms as you need to handle the load without
affecting live processing. I was working on a load manager, but pressing
engagements have taken me away from development.

 Each phantom opens the /spool/ path, does a readnext for the ID, locks it,
deletes it, and then reads the request from /spool/requests/. After
deleting the request and processing it, the response is written to
/spool/responses/ and processing goes back to the top. The C spooler
code needs some tweaking, but you may be able to take this architecture and
implement a spooler in a different way.

Glen Batchelor
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] Socket API problem

2007-08-02 Thread Shin.Tanaka
Don't know how UV license works.  Sorry.  

How about Phantom a listener after you accepts a client connection?
Yeah.. sure... there is a cost of starting a new phantom job...  
Because the listener cannot fork (of course, you can use UNIX domain
socket to pass a socket descriptor to a new  phantom process...  but
that will require C programming.) like C text book socket server
examples, PHANTOM the listener may be the easiest way to go...

That was just my 2 yen.

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Nick Cipollina
Sent: Wednesday, August 01, 2007 9:38 PM
To: u2-users@listserver.u2ug.org
Subject: [U2] Socket API problem

Hello All,

We are currently stuck at version 10.1 of Universe because IBM has
changed what causes a UV license to be consumed.  In versions 10.1 on
older versions, phantom processes do not require a separate universe
license.  As of version 10.2, this is no longer the case.  Phantom
processes will require a user license in order to run.  This is a
problem for us, because we currently run thousands of phantom processes
to process transactions, real-time.  Now you may say, well it is only
fair that you should have to pay for each of these processes because
they are essentially the same thing as a user session.  We are
interacting with the data through these phantoms.  The reason we have to
run so many processes is because of how Universe has implemented the
socket API.  Here is how I'm hoping someone on the list might be able to
help me, or correct me on my understanding of how the socket API works.
If my understanding is correct, the universe socket API does not allow
the listener to pass of the socket connection to another process for
processing and response.  The process that is listening on a port and
accepts the connection, is also the process that must answer.  This is
not typically how a socket service works.  Typically, you have a process
listening on a port, and when you receive a connection, the connection
is passed off to another process for processing and response.  So,
unless my understanding of how this works is incorrect, we have to run
so many phantoms because the Universe socket API is not set up to handle
multiple connections on a single port.  We actually have an F5 load
balancer that accepts the connections on a single port and passes it off
to one of the many phantoms that is listening on a unique port.  I have
two questions:

1. Is there anyone out there that is in the same boat we are?  Is anyone
else stuck on version 10.1 or older because they cannot afford to
upgrade to 10.2 because of the licensing requirements?
2. Is my understanding of how the universe socket API works correct?  If
so, has anyone come up with a way around this limitation?  Keep in mind,
we currently process 95% of our transactions in 1/10th of a second.

Thanks,



Nick Cipollina
 
MCTS, MCP
ACS Heritage, Inc.
2810 North Parham Road, Suite 210
Richmond, VA 23294
(804) 965-8294


CONFIDENTIALITY NOTICE: This e-mail message, including any attachments,
is for the sole use of the intended recipient(s) and may contain
confidential and privileged information. Any unauthorized review, use,
disclosure, or distribution is prohibited. If you are not the intended
recipient, please contact the sender by reply e-mail and destroy all
copies of the original message.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] Socket API problem

2007-08-02 Thread Nick Cipollina
All of your suggestions are very good, the problem is that all of these
solutions will introduce too much overhead.  I know that a lot of the
overhead is very, very minimal, but we cannot afford ANY overhead at
all.

Thanks,
 
Nick Cipollina

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Craig Bennett
Sent: Thursday, August 02, 2007 6:38 AM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Socket API problem

Hi Nick,

I don't have an answer to your licensing problem, but have you 
considered running your listener from inetd or a similar superserver?

In this setup your inetd daemon (or service on windows) listens on your 
known port, when a request comes in the superserver starts a UV process 
to handle the incoming request (received on stdin so get the data with 
INPUT or GETS) send your response using print.

This is slightly slower per request than prestarting all your phantoms 
but you only use as many licences as your peak load and if you have one 
of the more advanced inetd versions you can limit the maximum number of 
simultaneous requests (other requests will be queued by inetd).


I have implemented a HTTP server using this setup and other than the uv 
licensing cost it works well.


regards,


Craig
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for 
the sole use of the intended recipient(s) and may contain confidential and 
privileged information. Any unauthorized review, use, disclosure, or 
distribution is prohibited. If you are not the intended recipient, please 
contact the sender by reply e-mail and destroy all copies of the original 
message.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] Socket API problem

2007-08-02 Thread Craig Bennett

Hi Nick,

I don't have an answer to your licensing problem, but have you 
considered running your listener from inetd or a similar superserver?


In this setup your inetd daemon (or service on windows) listens on your 
known port, when a request comes in the superserver starts a UV process 
to handle the incoming request (received on stdin so get the data with 
INPUT or GETS) send your response using print.


This is slightly slower per request than prestarting all your phantoms 
but you only use as many licences as your peak load and if you have one 
of the more advanced inetd versions you can limit the maximum number of 
simultaneous requests (other requests will be queued by inetd).



I have implemented a HTTP server using this setup and other than the uv 
licensing cost it works well.



regards,


Craig
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] Socket API problem

2007-08-02 Thread Symeon Breen
Hi Nick - Phantoms do not take a licence in uv - only 'interactive phantoms' - 
an interactive phantom is one that uses the socket api or its derivatives (http 
and soap api's)  - This is of course no use to you.


What can be done is change the architecture slightly - so you have your core 
listener on a known port, when it receives a request from a client it gets the 
next free port from a pool and starts a phantom listening on that port, and 
passes back to the client the new port. The client then disconnects and 
reconnects to the new port. You will still have multiple licences in use but 
only for the clients that are connected.

Or radically change it to use a messaging layer - i.e. write webservices for 
the functions you want to do using uniobjects.net etc or the u2 soap stuff, and 
then have your clients connect to them. You can use connection pooling this way 
and configure your number of connections etc in the web server and pooling 
parameters. This will also take advantage of device licencing. After years of 
writing my own socket based apps this is now very much my preferred way of 
doing things.


HTH
Symeon

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Nick Cipollina
Sent: 02 August 2007 02:38
To: u2-users@listserver.u2ug.org
Subject: [U2] Socket API problem

Hello All,

We are currently stuck at version 10.1 of Universe because IBM has
changed what causes a UV license to be consumed.  In versions 10.1 on
older versions, phantom processes do not require a separate universe
license.  As of version 10.2, this is no longer the case.  Phantom
processes will require a user license in order to run.  This is a
problem for us, because we currently run thousands of phantom processes
to process transactions, real-time.  Now you may say, well it is only
fair that you should have to pay for each of these processes because
they are essentially the same thing as a user session.  We are
interacting with the data through these phantoms.  The reason we have to
run so many processes is because of how Universe has implemented the
socket API.  Here is how I'm hoping someone on the list might be able to
help me, or correct me on my understanding of how the socket API works.
If my understanding is correct, the universe socket API does not allow
the listener to pass of the socket connection to another process for
processing and response.  The process that is listening on a port and
accepts the connection, is also the process that must answer.  This is
not typically how a socket service works.  Typically, you have a process
listening on a port, and when you receive a connection, the connection
is passed off to another process for processing and response.  So,
unless my understanding of how this works is incorrect, we have to run
so many phantoms because the Universe socket API is not set up to handle
multiple connections on a single port.  We actually have an F5 load
balancer that accepts the connections on a single port and passes it off
to one of the many phantoms that is listening on a unique port.  I have
two questions:

1. Is there anyone out there that is in the same boat we are?  Is anyone
else stuck on version 10.1 or older because they cannot afford to
upgrade to 10.2 because of the licensing requirements?
2. Is my understanding of how the universe socket API works correct?  If
so, has anyone come up with a way around this limitation?  Keep in mind,
we currently process 95% of our transactions in 1/10th of a second.

Thanks,



Nick Cipollina
 
MCTS, MCP
ACS Heritage, Inc.
2810 North Parham Road, Suite 210
Richmond, VA 23294
(804) 965-8294


CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for 
the sole use of the intended recipient(s) and may contain confidential and 
privileged information. Any unauthorized review, use, disclosure, or 
distribution is prohibited. If you are not the intended recipient, please 
contact the sender by reply e-mail and destroy all copies of the original 
message.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] Socket API problem

2007-08-02 Thread Ian Stuart

Hi,

Have you considered the use of pipes for inter-process communication.  
Also, on UNIX/Linux, semaphores provide a powerful way to 
synchronise/trigger processes.  It's also possible to use an http server 
like Apache to achieve very similar functionality as one would with 
sockets, i.e if you have control over the application that is 
establishing a connection to a socket,  modify it to communicate via 
http and tools like FastCGI to maintain persistent processes.


If you'd like to discuss this off-line please feel free to email me directly

Regards
Ian Stuart
Nick Cipollina wrote:


Hello All,

We are currently stuck at version 10.1 of Universe because IBM has
changed what causes a UV license to be consumed.  In versions 10.1 on
older versions, phantom processes do not require a separate universe
license.  As of version 10.2, this is no longer the case.  Phantom
processes will require a user license in order to run.  This is a
problem for us, because we currently run thousands of phantom processes
to process transactions, real-time.  Now you may say, well it is only
fair that you should have to pay for each of these processes because
they are essentially the same thing as a user session.  We are
interacting with the data through these phantoms.  The reason we have to
run so many processes is because of how Universe has implemented the
socket API.  Here is how I'm hoping someone on the list might be able to
help me, or correct me on my understanding of how the socket API works.
If my understanding is correct, the universe socket API does not allow
the listener to pass of the socket connection to another process for
processing and response.  The process that is listening on a port and
accepts the connection, is also the process that must answer.  This is
not typically how a socket service works.  Typically, you have a process
listening on a port, and when you receive a connection, the connection
is passed off to another process for processing and response.  So,
unless my understanding of how this works is incorrect, we have to run
so many phantoms because the Universe socket API is not set up to handle
multiple connections on a single port.  We actually have an F5 load
balancer that accepts the connections on a single port and passes it off
to one of the many phantoms that is listening on a unique port.  I have
two questions:

1. Is there anyone out there that is in the same boat we are?  Is anyone
else stuck on version 10.1 or older because they cannot afford to
upgrade to 10.2 because of the licensing requirements?
2. Is my understanding of how the universe socket API works correct?  If
so, has anyone come up with a way around this limitation?  Keep in mind,
we currently process 95% of our transactions in 1/10th of a second.

Thanks,



Nick Cipollina

MCTS, MCP
ACS Heritage, Inc.
2810 North Parham Road, Suite 210
Richmond, VA 23294
(804) 965-8294


CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for 
the sole use of the intended recipient(s) and may contain confidential and 
privileged information. Any unauthorized review, use, disclosure, or 
distribution is prohibited. If you are not the intended recipient, please 
contact the sender by reply e-mail and destroy all copies of the original 
message.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


___ DISCLAIMER ___


This message contains confidential information and is intended only for the
individual named. If you are not the named addressee you should not
disseminate, distribute or copy this e-mail.
Please notify the sender immediately by e-mail if you have received this
e-mail by mistake and delete this e-mail from your system. E-mail transmission
cannot be guaranteed to be secure or error-free as information could be
intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain
viruses. The sender therefore does not accept liability for any errors or
omissions in the contents of this message, which arise as a result of e-mail
transmission. If verification is required please request a hard-copy version.


 





___ DISCLAIMER ___


This message contains confidential information and is intended only for the
individual named. If you are not the named addressee you should not
disseminate, distribute or copy this e-mail.
Please notify the sender immediately by e-mail if you have received this
e-mail by mistake and delete this e-mail from your system. E-mail transmission
cannot be guaranteed to be secure or error-free as information could be
intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain
viruses. The sender therefore does not accept liability for any errors or
omissions in the contents of this message, which arise as a result of e-mail
transmission. If verification is required please request a h

[U2] Socket API problem

2007-08-01 Thread Nick Cipollina
Hello All,

We are currently stuck at version 10.1 of Universe because IBM has
changed what causes a UV license to be consumed.  In versions 10.1 on
older versions, phantom processes do not require a separate universe
license.  As of version 10.2, this is no longer the case.  Phantom
processes will require a user license in order to run.  This is a
problem for us, because we currently run thousands of phantom processes
to process transactions, real-time.  Now you may say, well it is only
fair that you should have to pay for each of these processes because
they are essentially the same thing as a user session.  We are
interacting with the data through these phantoms.  The reason we have to
run so many processes is because of how Universe has implemented the
socket API.  Here is how I'm hoping someone on the list might be able to
help me, or correct me on my understanding of how the socket API works.
If my understanding is correct, the universe socket API does not allow
the listener to pass of the socket connection to another process for
processing and response.  The process that is listening on a port and
accepts the connection, is also the process that must answer.  This is
not typically how a socket service works.  Typically, you have a process
listening on a port, and when you receive a connection, the connection
is passed off to another process for processing and response.  So,
unless my understanding of how this works is incorrect, we have to run
so many phantoms because the Universe socket API is not set up to handle
multiple connections on a single port.  We actually have an F5 load
balancer that accepts the connections on a single port and passes it off
to one of the many phantoms that is listening on a unique port.  I have
two questions:

1. Is there anyone out there that is in the same boat we are?  Is anyone
else stuck on version 10.1 or older because they cannot afford to
upgrade to 10.2 because of the licensing requirements?
2. Is my understanding of how the universe socket API works correct?  If
so, has anyone come up with a way around this limitation?  Keep in mind,
we currently process 95% of our transactions in 1/10th of a second.

Thanks,



Nick Cipollina
 
MCTS, MCP
ACS Heritage, Inc.
2810 North Parham Road, Suite 210
Richmond, VA 23294
(804) 965-8294


CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for 
the sole use of the intended recipient(s) and may contain confidential and 
privileged information. Any unauthorized review, use, disclosure, or 
distribution is prohibited. If you are not the intended recipient, please 
contact the sender by reply e-mail and destroy all copies of the original 
message.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/