[Resin-interest] Did resin support epoll?

2006-12-26 Thread Steve Z
Hi
 Sun JRE  nio has supported epoll from JDK5.0_up9,JDK6.0 at
bottom, I wanna know whether it meaned resin support epoll now?
thanks.

-- 
Best Regards!

___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Did resin support epoll?

2006-12-26 Thread Serge Knystautas
Steve Z wrote:
 Hi
  Sun JRE  nio has supported epoll from JDK5.0_up9,JDK6.0 at
 bottom, I wanna know whether it meaned resin support epoll now?
 thanks.

Resin does not use nio, so how the Sun JVM implements NIO is not 
significant.

This is an interesting read on the matter from when epoll was a new 
feature: http://www.theserverside.com/discussions/thread.tss?thread_id=26700

-- 
Serge Knystautas
Lokitech  software . strategy . design  http://www.lokitech.com
p. 301.656.5501
e. [EMAIL PROTECTED]

___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Did resin support epoll?

2006-12-26 Thread Scott Ferguson

On Dec 26, 2006, at 9:59 AM, Serge Knystautas wrote:

 Steve Z wrote:
 Hi
  Sun JRE  nio has supported epoll from JDK5.0_up9,JDK6.0 at
 bottom, I wanna know whether it meaned resin support epoll now?
 thanks.

 Resin does not use nio, so how the Sun JVM implements NIO is not
 significant.

 This is an interesting read on the matter from when epoll was a new
 feature: http://www.theserverside.com/discussions/thread.tss? 
 thread_id=26700

Yep.  Threads aren't all that bad, especially on recent operating  
systems.  Remember, that any epoll/nio solution has extra overhead  
associated with detaching/attaching the thread.

A poll/epoll is essentially the same as an operating system block,  
but handled at the user level (and so requires several extra system  
calls).  OS blocks essentially do the exact same thing, but are  
handled by the kernel, which is far more efficient.

The problem at the moment is really 32-bit memory limitations.  Since  
threads take up virtual memory, lots of threads take up lots of  
memory.  In a 64-bit system, that's not an issue.  But we're running  
up to the limits of 32-bit virtual memory with lots of threads.

That issue will go away in the next 3-5 years as we transition to 64- 
bits.  At that point, it would make sense to just stick with lots of  
threads and avoid the epoll issue entirely.

-- Scott


 -- 
 Serge Knystautas
 Lokitech  software . strategy . design  http://www.lokitech.com
 p. 301.656.5501
 e. [EMAIL PROTECTED]

 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Resin 3.1.0 release

2006-12-26 Thread Alex Sharaz
Scott, many thanks for the official release of 3.1

I've installed it on a RHEL4 system with the BEA Jrockit JVM. 

Got all my ususal stuff working but sadly not Gallery2 or media wiki.
I've switched debug logging on and have what might be some useful
logging. Should I send it to the list or [EMAIL PROTECTED]

All the best for the new year 

Alex


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Scott Ferguson
Sent: 26 December 2006 17:56
To: General Discussion for the Resin application server;
[EMAIL PROTECTED]
Subject: [Resin-interest] Resin 3.1.0 release

Resin 3.1.0 is now available.  Keep in mind that 3.1.x is a  
development branch.  3.1.1 will have new features as well as bug  
fixes, so it is possible that 3.1.1 may introduce new bugs.

Main changes in 3.1.0:
   Requires JDK 1.5
   Servlet for JavaEE 1.5
   JSP for JavaEE 1.5
   Amber progress (almost, but not quite passing JPA)
   resin.conf refactoring for improved cluster configuration
   watchdog/startup changes
   web services configuration (as servlet)
   Quercus updates for PHP 6 (i18n), Java reflection

I) Watchdog/startup changes:

The most visible change is the Resin startup, particularly on Unix.
The wrapper.pl is now gone, replaced by a Java watchdog process.  The  
unix command-line startup is:

   unix java -jar resin-3.1.0/lib/resin.jar start

Or, for foreground, development work, just

   unix java -jar resin-3.1.0/lib/resin.jar

For different configuration files and servers, use

   unix java -jar lib/resin.jar -conf conf/myconfig.conf -server app- 
a start

Windows users can also use the new startup, but can still use the old  
httpd.exe.

Because the watchdog process is in Java, JDK command-line arguments  
now belong in the resin.conf.  This will be nice, since all the  
relevant configuration will now be in resin.conf.

II) resin.conf clustering changes.

We've reorganized the resin.conf to better handle multiple clusters.   
The most important use is for web-tier and app-tier load-balancing.   
Now, both the web-tier and the app-tier fit into the same resin.conf.

The old 3.1.0 syntax is still available as backward compatibility,  
but we encourage people to upgrade.

The basic structure is:

   resin xmlns=http://caucho.com/ns/resin;
 cluster id=app-tier
   server-default
  !-- common configuration for all servers in a cluster,  
like thread-max --
  http address=* port=8080/
  /server-default

  !-- server replaces srun --
  server id=app-a address=192.168.2.10 port=6800/

   host id=www.caucho.com
 !-- usual virtual host configuration --
   /host
 /cluster
   /resin

III) web services

Web services can now be configured as servlets (this is part of the  
Servlet 2.5 spec).  If the servlet-class implements @WebService, it  
will be treated as a web-service.  The class does not need to  
implement Servlet.  The lifecycle is the same as for a servlet, i.e.  
only a single, multithreaded instance (no pooling).

Resin allows a choice of protocols, including Hessian, Burlap, and  
REST.  So the configuration might look like:

servlet-mapping url-pattern=/hello/*
  servlet-class=example.HelloServiceImpl
   protocol type=hessian
 api-classexample.Hello/api-class
   /protocol
/servlet-mapping

IV) JSP and Servlet for JavaEE 5

See the specs. :)

The main new capabilities are @Resource injection and capabilities  
for the new JSF (i.e. %{foo}).

The @Resource injection is very nice.  It removes the requirement for  
most JNDI lookup, e.g.

public class MyServlet ... {
   @Resource(name=jdbc/db)
   private DataSource _dataSource;
   ...
}

Resin will inject the DataSource into the servlet before it calls the  
init() method.

V) @Resource for java.util.concurrent.Executor

In Resin you can use the @Resource to get access to Resin's thread  
pool for Executor-launched threads.  This means you can launch short- 
lived threads using Resin's thread pool.

However, you still need to be careful about lifecycle issues.  We  
haven't yet implemented an ExecutorService which would let Resin stop  
the thread on web-app restart automatically.  So you still need to  
have the destroy() method stop the thread.

class MyServlet {
   @Resource
   private Executor _executor;

   private void foo()
   {
 _executor.execute(new MyRunnableTask());
   }
}

VI) Resin 3.1.1 roadmap

The roadmap always changes, so take this as a rough guideline of  
intent.  We think the following will be ready for 3.1.1 (in about 12  
weeks or so)

   Amber/JPA
   SOAP/JAX-WS
   JSF
   more of EJB 3.0 (I'm not sure we'll get it done by 3.1.1)
   Quercus integration as scripting language for packages like  
Spring, Grails, etc.

We're aiming on JavaEE 5 by May.  I think that's probably optimistic,  
but it's our current target.

Share and Enjoy!


___
resin-interest mailing list
resin-interest@caucho.com

Re: [Resin-interest] Resin 3.1.0 release

2006-12-26 Thread Scott Ferguson

On Dec 26, 2006, at 1:22 PM, Alex Sharaz wrote:

 Scott, many thanks for the official release of 3.1

 I've installed it on a RHEL4 system with the BEA Jrockit JVM.

 Got all my ususal stuff working but sadly not Gallery2 or media wiki.
 I've switched debug logging on and have what might be some useful
 logging. Should I send it to the list or [EMAIL PROTECTED]

bugs.caucho.com would be best (if the logs are small).

We also refactored Quercus in a major way for 3.1.0, so that's almost  
certainly what you're running into.  We should be able to split out  
the interpreted half of Quercus as a standalone web-app (i.e. non- 
Resin), so we can have non-Resin users working on Quercus too.

-- Scott


 All the best for the new year

 Alex


 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Scott Ferguson
 Sent: 26 December 2006 17:56
 To: General Discussion for the Resin application server;
 [EMAIL PROTECTED]
 Subject: [Resin-interest] Resin 3.1.0 release

 Resin 3.1.0 is now available.  Keep in mind that 3.1.x is a
 development branch.  3.1.1 will have new features as well as bug
 fixes, so it is possible that 3.1.1 may introduce new bugs.

 Main changes in 3.1.0:
Requires JDK 1.5
Servlet for JavaEE 1.5
JSP for JavaEE 1.5
Amber progress (almost, but not quite passing JPA)
resin.conf refactoring for improved cluster configuration
watchdog/startup changes
web services configuration (as servlet)
Quercus updates for PHP 6 (i18n), Java reflection

 I) Watchdog/startup changes:

 The most visible change is the Resin startup, particularly on Unix.
 The wrapper.pl is now gone, replaced by a Java watchdog process.  The
 unix command-line startup is:

unix java -jar resin-3.1.0/lib/resin.jar start

 Or, for foreground, development work, just

unix java -jar resin-3.1.0/lib/resin.jar

 For different configuration files and servers, use

unix java -jar lib/resin.jar -conf conf/myconfig.conf -server app-
 a start

 Windows users can also use the new startup, but can still use the old
 httpd.exe.

 Because the watchdog process is in Java, JDK command-line arguments
 now belong in the resin.conf.  This will be nice, since all the
 relevant configuration will now be in resin.conf.

 II) resin.conf clustering changes.

 We've reorganized the resin.conf to better handle multiple clusters.
 The most important use is for web-tier and app-tier load-balancing.
 Now, both the web-tier and the app-tier fit into the same resin.conf.

 The old 3.1.0 syntax is still available as backward compatibility,
 but we encourage people to upgrade.

 The basic structure is:

resin xmlns=http://caucho.com/ns/resin;
  cluster id=app-tier
server-default
   !-- common configuration for all servers in a cluster,
 like thread-max --
   http address=* port=8080/
   /server-default

   !-- server replaces srun --
   server id=app-a address=192.168.2.10 port=6800/

host id=www.caucho.com
  !-- usual virtual host configuration --
/host
  /cluster
/resin

 III) web services

 Web services can now be configured as servlets (this is part of the
 Servlet 2.5 spec).  If the servlet-class implements @WebService, it
 will be treated as a web-service.  The class does not need to
 implement Servlet.  The lifecycle is the same as for a servlet, i.e.
 only a single, multithreaded instance (no pooling).

 Resin allows a choice of protocols, including Hessian, Burlap, and
 REST.  So the configuration might look like:

 servlet-mapping url-pattern=/hello/*
   servlet-class=example.HelloServiceImpl
protocol type=hessian
  api-classexample.Hello/api-class
/protocol
 /servlet-mapping

 IV) JSP and Servlet for JavaEE 5

 See the specs. :)

 The main new capabilities are @Resource injection and capabilities
 for the new JSF (i.e. %{foo}).

 The @Resource injection is very nice.  It removes the requirement for
 most JNDI lookup, e.g.

 public class MyServlet ... {
@Resource(name=jdbc/db)
private DataSource _dataSource;
...
 }

 Resin will inject the DataSource into the servlet before it calls the
 init() method.

 V) @Resource for java.util.concurrent.Executor

 In Resin you can use the @Resource to get access to Resin's thread
 pool for Executor-launched threads.  This means you can launch short-
 lived threads using Resin's thread pool.

 However, you still need to be careful about lifecycle issues.  We
 haven't yet implemented an ExecutorService which would let Resin stop
 the thread on web-app restart automatically.  So you still need to
 have the destroy() method stop the thread.

 class MyServlet {
@Resource
private Executor _executor;

private void foo()
{
  _executor.execute(new MyRunnableTask());
}
 }

 VI) Resin 3.1.1 roadmap

 The roadmap always changes, so take this as a rough guideline of
 intent.  We think the following will be ready for 3.1.1 (in 

Re: [Resin-interest] Did resin support epoll?

2006-12-26 Thread Steve Z
thank all very much :)
Do you mean if we're using 64-bit os, poll equal epoll?

On 12/27/06, Scott Ferguson [EMAIL PROTECTED] wrote:

 On Dec 26, 2006, at 9:59 AM, Serge Knystautas wrote:

  Steve Z wrote:
  Hi
   Sun JRE  nio has supported epoll from JDK5.0_up9,JDK6.0 at
  bottom, I wanna know whether it meaned resin support epoll now?
  thanks.
 
  Resin does not use nio, so how the Sun JVM implements NIO is not
  significant.
 
  This is an interesting read on the matter from when epoll was a new
  feature: http://www.theserverside.com/discussions/thread.tss?
  thread_id=26700

 Yep.  Threads aren't all that bad, especially on recent operating
 systems.  Remember, that any epoll/nio solution has extra overhead
 associated with detaching/attaching the thread.

 A poll/epoll is essentially the same as an operating system block,
 but handled at the user level (and so requires several extra system
 calls).  OS blocks essentially do the exact same thing, but are
 handled by the kernel, which is far more efficient.

 The problem at the moment is really 32-bit memory limitations.  Since
 threads take up virtual memory, lots of threads take up lots of
 memory.  In a 64-bit system, that's not an issue.  But we're running
 up to the limits of 32-bit virtual memory with lots of threads.

 That issue will go away in the next 3-5 years as we transition to 64-
 bits.  At that point, it would make sense to just stick with lots of
 threads and avoid the epoll issue entirely.

 -- Scott

 
  --
  Serge Knystautas
  Lokitech  software . strategy . design  http://www.lokitech.com
  p. 301.656.5501
  e. [EMAIL PROTECTED]
 
  ___
  resin-interest mailing list
  resin-interest@caucho.com
  http://maillist.caucho.com/mailman/listinfo/resin-interest


 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest



-- 
Best Regards!

___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] Isapi_dll 3.0.18 vs 3.0.22

2006-12-26 Thread Leland, Robert
On about 50% of our machines using IE 6.0 is not reloading
JavaScript/Image files.
We are running HTTPS/SSL over IIS 6.0 SP2.
(IE loads the file the first time but when IE Checks to see if the files
in its cache are up to date
I believe the reload fails)

When we switched to the 3.0.18 version of the ISAPI DLL,
  and used either 3.0.21 or 3.0.22 PRO core the application works like a
champ !

In  protocol.cpp I noticed the return value for 
   write_client_buffer
Is NOT being checked.

This differs from 3.0.18 when that block of code was inline.

I believe on Line 479 of protocol.cpp

write_client_buffer(r, s-read_buf + s-read_offset,
sublen);
should be

if (write_client_buffer(r, s-read_buf + s-read_offset,
sublen)  0)
  return -1; 

Otherwise the condition of !r-WriteClient(r-ConnID, buffer, sentlen,
HSE_IO_SYNC)
is not detected as it was in 3.0.18. 

Also 3.0.18 would cse_close(s, response) in cse_write_response

3.0.21 uses cse_close(s, write) after send_data completes.

These are the differences I see.

I should also mention that there are 14 other production servers from
other
projects here that are using the 3.0.14 ISAPI DLL.

When I heard about that 6 months ago I thought they were asking for
trouble,
And I deployed with the FULL PRO 3.0.18 w/o trouble except the OOM
problem.

Trying to go to 3.0.21/3.0.22 has been very frustrating, any feedback
would
be helpful.

 

_
Robert Leland INTEGRITYOne (Formerly PRIZUM)
P: (703) 581-6522   1900 Campus Commons Drive
F: (703) 476-7405Reston, VA 20191
[EMAIL PROTECTED]


BUSINESS CONSULTING | TECHNOLOGY SOLUTIONS | INNOVATION RD

 

___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Isapi_dll 3.0.18 vs 3.0.22

2006-12-26 Thread Matt Pangaro
Robert,
Try out the latest snapshot, if you have an environment in which you can 
test this. It should turn into a 3.0.23 release very soon, and has a fix 
for chunked encoding with cached responses. (i.e. it shouldn't be 
setting the header for chunked encoding.) 3.0.22 also contained some 
plugin and chunked encoding fixes, but the static file behavior you're 
seeing is because of the header issue that's fixed in the snaphot.

Please report anything else you do see with the current snapshot so that 
any fix that might arise from it can be include in .23.

Hope that helps,

Matt Pangaro
Lokitech  software . strategy . design
http://www.lokitech.com
m. 1.301.728.6906
f. 1.815.364.0656
e. [EMAIL PROTECTED]


Leland, Robert wrote:
 On about 50% of our machines using IE 6.0 is not reloading
 JavaScript/Image files.
 We are running HTTPS/SSL over IIS 6.0 SP2.
 (IE loads the file the first time but when IE Checks to see if the files
 in its cache are up to date
 I believe the reload fails)
 
 When we switched to the 3.0.18 version of the ISAPI DLL,
   and used either 3.0.21 or 3.0.22 PRO core the application works like a
 champ !


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest