Greetings,

Sorry for just jumping into the discussion rather late. However we have the same issues here where we alternatively are using node.js as the frontend for IceBreak ILE application server.

Node.js has ( as you all know) one disadvantage: the one ( single) process listening/binding to the port.

I know you can do some trix with a "fork" so it shares the same socket or you can set up a "reverse proxy" front-end. IMHO it its to many moving parts…

What is was looking for, was a feature in the core of the IBMI that let me share the the socket between jobs – not only forked process. But more the data-queue style where each process/job can listen the the next incoming "connect". This will eventually mean that i can submit any number of node.js jobs listening on the same port.

It seams that windows has a similar (but not exactly) feature WSADuplicateSocket i am looking for

BTW: This will also enable me to "upscale" java jobs where "fork" is not an option


Thanx in advance…


Best regards

Niels Liisberg

Chief Software Architect

sitemule.com

System & Method A/S
Håndværkersvinget 8
DK-2970 Hørsholm
Phone: +45 70 20 30 10

Fax: +45 70 20 30 11
Direct: +45 45 166 135
Mobile: +45 31 158 861
E-mail: nli@xxxxxxxxxxxx<mailto:nli@xxxxxxxxxxxxxxxxx> or nli@xxxxxxxxxxxxxxxxx<mailto:nli@xxxxxxxxxxxxxxxxx>
Web:
www.sitemule.com
www.system-method.com
www.Icebreak.org

“Everything should be made as simple as possible, but not simpler.”
— Albert Einstein



From: Tim Rowe <timmr@xxxxxxxxxx<mailto:timmr@xxxxxxxxxx>>
Reply-To: AS400 iSeries <web400@xxxxxxxxxxxx<mailto:web400@xxxxxxxxxxxx>>
Date: Wed, 14 Oct 2015 15:44:28 +0200
To: AS400 iSeries <web400@xxxxxxxxxxxx<mailto:web400@xxxxxxxxxxxx>>
Subject: Re: [WEB400] Hosting a Large Number of Node Apps on the IBM i

Greetings, on IBM i, no you would not be pinned to a processor core. You
would be in a single processes, but that process would be executed by any
available processor (assuming you have multiple available) The only way
to actually pin a process to a core is to play with the Workload Capping
Group support. But that requires some playing to make that actually
happen.

Tim



Tim Rowe, timmr@xxxxxxxxxx<mailto:timmr@xxxxxxxxxx>
Business Architect Application Development & Systems Management for IBM i
IBM i Development Lab, Rochester, MN
(507) 253-6191 (Tie) 553-6191

http://www-03.ibm.com/systems/power/software/i/are/index.html



----- Original message -----
From: Henrik R**tzou <hr@xxxxxxxxxxxx<mailto:hr@xxxxxxxxxxxx>>
Sent by: "WEB400" <web400-bounces@xxxxxxxxxxxx<mailto:web400-bounces@xxxxxxxxxxxx>>
To: "Web Enabling the IBM i (AS/400 and iSeries)" <web400@xxxxxxxxxxxx<mailto:web400@xxxxxxxxxxxx>>
Cc:
Subject: Re: [WEB400] Hosting a Large Number of Node Apps on the IBM i
Date: Wed, Oct 14, 2015 8:16 AM

Kevin

as I see it it all comes down to how many node.js servers you have
running
since one node.js instance is bound to one processor core - but i may be
wrong.

On Wed, Oct 14, 2015 at 3:07 PM, Kevin Turner
<kevin.turner@xxxxxxxxxxxxxxx<mailto:kevin.turner@xxxxxxxxxxxxxxx>>
wrote:

> Maybe I am just referring to Sails which uses express.js under the
> covers. In the stuff I have done, all the routes and configured in a
JSON
> (and do require a restart when changed):
>
> For example:
>
>
> module.exports.routes = {
>
>
>
/***************************************************************************
> *
> *
> * Make the view located at `views/homepage.ejs` (or
> `views/homepage.jade`, *
> * etc. depending on your default view engine) your home page.
> *
> *
> *
> * (Alternatively, remove this and add an `index.html` file in your
> *
> * `assets` directory)
> *
> *
> *
>
>
***************************************************************************/
>
> //'/': {
> // view: 'homepage'
> //}
>
>
> // Passport control
> 'get /homepage': 'AuthController.homepage',
> 'get /dashboard': 'AuthController.dashboard',
> 'get /logout': 'AuthController.logout',
> 'get /register': 'AuthController.register',
>
> 'post /auth/local': 'AuthController.callback',
> 'post /auth/local/:action': 'AuthController.callback',
>
> 'get /auth/:provider': 'AuthController.provider',
> 'get /auth/:provider/callback': 'AuthController.callback',
>
> // Normal processing
> 'get /': 'PageController.validateRequest',
>
> // Profiles
> 'get /profile': 'AuthController.profile',
> 'post /updateprofile': 'AuthController.updateProfile',
> 'get /reset': {view:'reset'},
> 'post /auth/passwordreset': 'AuthController.passwordReset',
>
> // Bookings
> 'get /booking' : 'BookingController.prepareBooking',
> 'get /booking/:action': 'BookingController.prepareBooking',
> 'get /mybookings': 'BookingController.myBookings',
> 'get /allmybookings/:filter?': 'BookingController.allMyBookings',
//
> the ? in :filter? means that the filter part or the URL is optional
> 'get /eventbookings': 'BookingController.eventBookings',
> 'get /alleventbookings/:filter?':
'BookingController.allEventBookings',
> 'get /userbookings': 'BookingController.userBookings',
> 'get /alluserbookings/:filter?':
'BookingController.allUserBookings',
> 'post /makebooking': 'BookingController.makeBooking',
> 'post /makebooking/:action?': 'BookingController.makeBooking',
> 'get /linkedbooking/:bookingid':
> 'LinkedBookingController.linkedBookings',
> 'post /validateadditions': 'BookingController.validateAdditions',
> 'post /updatebooking/:action': 'BookingController.updateBooking',
>
> // Users
> 'get /users': 'UserController.users',
> 'get /allusers/:filter?': 'UserController.allUsers', // the ? in
> :filter? means that the filter part or the URL is optional
> 'get /usermaint/:action': 'UserController.prepareUser',
> 'post /updateuser/:action': 'UserController.updateUser',
> 'get /organisers': 'UserController.organisers',
>
> // Events
> 'get /events': 'EventController.events',
> 'get /openevents': 'EventController.openEvents',
> 'get /allevents/:filter?': 'EventController.allEvents', // the ? in
> :filter? means that the filter part or the URL is optional
> 'get /event/:action': 'EventController.prepareEvent',
> 'post /updateevent/:action': 'EventController.updateEvent',
>
>
>
/***************************************************************************
> *
> *
> * Custom routes here...
> *
> *
> *
> * If a request to a URL doesn't match any of the custom routes
above,
> it *
> * is matched against Sails route blueprints. See
`config/blueprints.js`
> *
> * for configuration options and examples.
> *
> *
> *
>
>
***************************************************************************/
>
> };
>
> -----Original Message-----
> From: WEB400 [[1]mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of
Nathan
> Andelin
> Sent: 14 October 2015 13:46
> To: Web Enabling the IBM i (AS/400 and iSeries) <web400@xxxxxxxxxxxx<mailto:web400@xxxxxxxxxxxx>>
> Subject: Re: [WEB400] Hosting a Large Number of Node Apps on the IBM i
>
> >
> > This is by you would probably go for a library like express.js -
which
> > will already have this problem cracked. I can't describe how as I
> > have only just started using it, but I know you would have a rather
> > large routing config file.
> >
>
> IIRC, all the Express.js examples I've seen use inline JavaScript to
> perform routing as opposed to a "large routing config file". For
example:
>
> var express = require('express');var app = express();
>
> app.get('/', function(req, res){
> res.send('hello world');});
>
> app.listen(3000);
>
>
> In that example, it appears that any "GET" request to the ROOT URL "/"
is
> routed to a JavaScript function which sends "hello world".
>
> How would you manage 20,000+ URLs? Restart your "service" each time
you
> add a new route to inline code?
> --
> This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400)
mailing
> list To post a message email: WEB400@xxxxxxxxxxxx<mailto:WEB400@xxxxxxxxxxxx> To subscribe,
> unsubscribe, or change list options,
> visit: [2]http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx<mailto:WEB400-request@xxxxxxxxxxxx>
> Before posting, please take a moment to review the archives at
> [3]http://archive.midrange.com/web400.
>
>
> ___________________________________________
> This email has been scanned by iomartcloud.
> [4]http://www.iomartcloud.com/
>
>
> ________________________________
>
> NOTICE: The information in this electronic mail transmission is
intended
> by CoralTree Systems Ltd for the use of the named individuals or
entity to
> which it is directed and may contain information that is privileged or
> otherwise confidential. If you have received this electronic mail
> transmission in error, please delete it from your system without
copying or
> forwarding it, and notify the sender of the error by reply email or by
> telephone, so that the sender's address records can be corrected.
>
>
>
>
>
--------------------------------------------------------------------------------
>
>
> CoralTree Systems Limited
> 25 Barnes Wallis Road
> Segensworth East, Fareham
> PO15 5TT
>
> Company Registration Number 5021022.
> Registered Office:
> 12-14 Carlton Place
> Southampton, UK
> SO15 2EA
> VAT Registration Number 834 1020 74.
> --
> This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400)
mailing
> list
> To post a message email: WEB400@xxxxxxxxxxxx<mailto:WEB400@xxxxxxxxxxxx>
> To subscribe, unsubscribe, or change list options,
> visit: [5]http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx<mailto:WEB400-request@xxxxxxxxxxxx>
> Before posting, please take a moment to review the archives
> at [6]http://archive.midrange.com/web400.
>
>

--
Regards,
Henrik R**tzou

[7]http://powerEXT.com <[8]http://powerext.com/>
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx<mailto:WEB400@xxxxxxxxxxxx>
To subscribe, unsubscribe, or change list options,
visit: [9]http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx<mailto:WEB400-request@xxxxxxxxxxxx>
Before posting, please take a moment to review the archives
at [10]http://archive.midrange.com/web400.


References

Visible links
1. mailto:web400-bounces@xxxxxxxxxxxx
2. http://lists.midrange.com/mailman/listinfo/web400
3. http://archive.midrange.com/web400
4. http://www.iomartcloud.com/
5. http://lists.midrange.com/mailman/listinfo/web400
6. http://archive.midrange.com/web400
7. http://powerext.com/
8. http://powerext.com/
9. http://lists.midrange.com/mailman/listinfo/web400
10. http://archive.midrange.com/web400
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list
To post a message email: WEB400@xxxxxxxxxxxx<mailto:WEB400@xxxxxxxxxxxx>
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx<mailto:WEB400-request@xxxxxxxxxxxx>
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.