You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Paul McMahan <pa...@gmail.com> on 2007/08/02 18:12:57 UTC

Re: Tomcat connectors

This work is complete now and available in trunk and the 2.0 branch.   
As a side effect of introducing these new connectors we needed to  
make some changes to the management apis (mainly WebManager) to allow  
the connectors to specify which attributes they support, what their  
types are (string, boolean, integer, etc), whether or not they are  
required vs. optional, etc.  All this used to be hard coded in the  
portlet but now they are defined per connector type in  
JettyManagerImpl and TomcatManagerImpl and the portlet just renders a  
form with corresponding inputs and validation.

I tried to cover as much testing as possible within our proposed  
timeframe for 2.0 but there may still be some rough edges.   In  
particular I was not able to test the APR connectors without having  
the native libraries.  You can successfully create an APR connector  
but without the libraries it won't start due to an unsatisfied link  
error (as expected).

Thanks to Jeff and David Jencks for all their help on getting this  
important feature into 2.0.

Best wishes,
Paul

On Jul 25, 2007, at 1:43 PM, Jeff Genender wrote:

> Ok I added a whole bunch of new connectors in the o.a.g.t.connectors
> package.
>
> I am still working on APR - more notes to follow on this as its a  
> little
> squirly since the Tomcat Connector somewhat "chooses" this  
> automatically
> based on the existence of a native libraries.  For the console we may
> wish to do a check on whether the native libs exist, and if so,  
> present
> the APR connector.  More on this in another email.
>
> Here are the connectors we care about at the moment...
>
> AJP13ConnectorGBean - Implements AJP
> Http11ConnectorGBean - Implements blocking Http connector
> Https11ConnectorGBean  - Implements blocking Https connector
> Http11NIOConnectorGBean - Implements non-blocking Http connector
> Https11NIOConnectorGBean - Implements non-blocking Https connector
>
> I have not wired them into the container and other GBeans yet...I want
> to clena them up and get any feedback before making the switch since
> this obviously will impact the console upon wiring them in.
>
> As a side note...I am not using any references to the WebManager or
> other interfaces we used that hooked into the console.  We can re-add
> those if those are deemed necessary.
>
> Jeff
>
> Paul McMahan wrote:
>> I agree NIO support would be great to have in 2.0, especially  
>> since its
>> required for comet.
>>
>> Best wishes,
>> Paul
>>
>> On Jul 23, 2007, at 2:42 PM, Jeff Genender wrote:
>>
>>> Hi,
>>>
>>> I was going through some JIRAs and the Geronimo2.0 source and  
>>> noticed it
>>> will be difficult at best to get the NIO connector and setting
>>> attributes on the APR connector for Tomcat due to its current
>>> implementation.  I really think the ability to use these 2  
>>> connectors is
>>> very important for the 2.0 release and I would like to put these  
>>> in.  If
>>> there are no objections, I would like this to be a part of the 2.0
>>> release.
>>>
>>> Jeff


Re: Tomcat connectors

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
David Jencks wrote:
>
> On Aug 9, 2007, at 3:58 PM, Filip Hanik - Dev Lists wrote:
>
>> David Jencks wrote:
>>>
>>> On Aug 9, 2007, at 11:18 AM, threepointsomething wrote:
>>>
>>>>
>>>> I am quite new to Geronimo, so I am not sure if the steps I 
>>>> followed are
>>>> right. Here goes:
>>>>
>>>> I had to ensure that the NIO connector is picked up in place of the 
>>>> basic
>>>> HTTP connector, so I made the following change in
>>>> configs\tomcat6\src\plan\plan.xml:
>>>>
>>>> &lt;gbean name="TomcatWebConnector"
>>>> class="org.apache.geronimo.tomcat.connector.Http11NIOConnectorGBean"&gt; 
>>>>
>>>>
>>>> I then rebuilt config\tomcat6\. When I started Geronimo, it picked 
>>>> up the
>>>> NIO connector as expected.
>>>>
>>>>   Listening on Ports:
>>>>     1050 127.0.0.1 CORBA Naming Service
>>>>     1099 0.0.0.0   RMI Naming
>>>>     1527 0.0.0.0   Derby Connector
>>>>     2001 127.0.0.1 OpenEJB ORB Adapter
>>>>     4201 0.0.0.0   OpenEJB Daemon
>>>>     6882 127.0.0.1 OpenEJB ORB Adapter
>>>>     8009 0.0.0.0   Tomcat Connector AJP AJP
>>>>     8080 0.0.0.0   Tomcat Connector HTTP NIO HTTP
>>>>     8443 0.0.0.0   Tomcat Connector HTTPS BIO HTTPS
>>>>     9999 0.0.0.0   JMX Remoting Connector
>>>>    61613 0.0.0.0   ActiveMQ Transport Connector
>>>>    61616 0.0.0.0   ActiveMQ Transport Connector
>>>>
>>>> I then ran a sample comet application (WAR) that was executing 
>>>> properly in
>>>> Tomcat and tried it in this instance of Geronimo. Seemed to work fine.
>>>>
>>>> I was wondering if there is a simpler way of configuring NIO 
>>>> without having
>>>> to rebuild config\tomcat6. If so can you please suggest how I can 
>>>> do that?
>>>
>>> Well, I expect we actually want to ship with the NIO connectors used 
>>> by default anyway, like we do for jetty.
>> I'd ship with the 6.0.14 code, tons of fixes since the last stable 
>> release.
>> the code has been voted stable and ready to announce, we're just 
>> waiting for the RM to pull his head out of his rear :)
>> http://people.apache.org/~remm/tomcat-6/v6.0.14/
>
> That's a bit of a different point.  I was referring to which of the 8 
> or so tomcat connectors we turn on by default: I think we want to turn 
> on the NIO ones rather than the BIO ones.  The tomcat code base we are 
> shipping is based pretty much on near-to-6.0.14 code but with the 
> annotation processor changes applied, which we need for 
> certification.  I imagine as soon as the annotation processor changes 
> are in a released tomcat version we'll switch to that, until then we 
> are stuck building our own copies.
>
> thanks
> david jencks
forgot about that, I'll probably volunteer as RM for the trunk project, 
so that we can get some snapshots and alpha/beta(s) out the door

Filip
>
>>
>> Filip
>>>
>>> However until we get there you can either turn off the BIO connector 
>>> and add a NIO connector in var/config/config.xml or turn off the BIO 
>>> connector in config.xml and add the appropriate connector to the 
>>> geronimo plan for your app.  You can add the NIO connector using the 
>>> admin console, but I think you need to turn off the BIO connector by 
>>> editing config.xml when geronimo is not running.  add the attribute 
>>> load="false" to the gbean entry for the BIO connector.
>>>
>>> Hope this helps
>>> david jencks
>>>
>>>
>>>>
>>>> Thanks,
>>>> Gautham.
>>>>
>>>> --View this message in context: 
>>>> http://www.nabble.com/Tomcat-connectors-tf4132628s134.html#a12077742
>>>> Sent from the Apache Geronimo - Dev mailing list archive at 
>>>> Nabble.com.
>>>>
>>>
>>>
>>>
>>> --No virus found in this incoming message.
>>> Checked by AVG Free Edition.Version: 7.5.476 / Virus Database: 
>>> 269.11.10/943 - Release Date: 8/8/2007 5:38 PM
>>>
>>>
>>
>
>
>
> --No virus found in this incoming message.
> Checked by AVG Free Edition.Version: 7.5.476 / Virus Database: 
> 269.11.10/943 - Release Date: 8/8/2007 5:38 PM
>
>


Re: Tomcat connectors

Posted by Paul McMahan <pa...@gmail.com>.
On Aug 9, 2007, at 7:12 PM, David Jencks wrote:

> I imagine as soon as the annotation processor changes are in a  
> released tomcat version we'll switch to that, until then we are  
> stuck building our own copies.

Yep that's why I keep nagging on dev@tomcat about keeping tomcat/ 
trunk in synch with tomcat/6.0.x/trunk  :-)    The annotation  
processor changes were only applied to tomcat/trunk.

Best wishes,
Paul

Re: Tomcat connectors

Posted by David Jencks <da...@yahoo.com>.
On Aug 9, 2007, at 3:58 PM, Filip Hanik - Dev Lists wrote:

> David Jencks wrote:
>>
>> On Aug 9, 2007, at 11:18 AM, threepointsomething wrote:
>>
>>>
>>> I am quite new to Geronimo, so I am not sure if the steps I  
>>> followed are
>>> right. Here goes:
>>>
>>> I had to ensure that the NIO connector is picked up in place of  
>>> the basic
>>> HTTP connector, so I made the following change in
>>> configs\tomcat6\src\plan\plan.xml:
>>>
>>> &lt;gbean name="TomcatWebConnector"
>>> class="org.apache.geronimo.tomcat.connector.Http11NIOConnectorGBean" 
>>> &gt;
>>>
>>> I then rebuilt config\tomcat6\. When I started Geronimo, it  
>>> picked up the
>>> NIO connector as expected.
>>>
>>>   Listening on Ports:
>>>     1050 127.0.0.1 CORBA Naming Service
>>>     1099 0.0.0.0   RMI Naming
>>>     1527 0.0.0.0   Derby Connector
>>>     2001 127.0.0.1 OpenEJB ORB Adapter
>>>     4201 0.0.0.0   OpenEJB Daemon
>>>     6882 127.0.0.1 OpenEJB ORB Adapter
>>>     8009 0.0.0.0   Tomcat Connector AJP AJP
>>>     8080 0.0.0.0   Tomcat Connector HTTP NIO HTTP
>>>     8443 0.0.0.0   Tomcat Connector HTTPS BIO HTTPS
>>>     9999 0.0.0.0   JMX Remoting Connector
>>>    61613 0.0.0.0   ActiveMQ Transport Connector
>>>    61616 0.0.0.0   ActiveMQ Transport Connector
>>>
>>> I then ran a sample comet application (WAR) that was executing  
>>> properly in
>>> Tomcat and tried it in this instance of Geronimo. Seemed to work  
>>> fine.
>>>
>>> I was wondering if there is a simpler way of configuring NIO  
>>> without having
>>> to rebuild config\tomcat6. If so can you please suggest how I can  
>>> do that?
>>
>> Well, I expect we actually want to ship with the NIO connectors  
>> used by default anyway, like we do for jetty.
> I'd ship with the 6.0.14 code, tons of fixes since the last stable  
> release.
> the code has been voted stable and ready to announce, we're just  
> waiting for the RM to pull his head out of his rear :)
> http://people.apache.org/~remm/tomcat-6/v6.0.14/

That's a bit of a different point.  I was referring to which of the 8  
or so tomcat connectors we turn on by default: I think we want to  
turn on the NIO ones rather than the BIO ones.  The tomcat code base  
we are shipping is based pretty much on near-to-6.0.14 code but with  
the annotation processor changes applied, which we need for  
certification.  I imagine as soon as the annotation processor changes  
are in a released tomcat version we'll switch to that, until then we  
are stuck building our own copies.

thanks
david jencks

>
> Filip
>>
>> However until we get there you can either turn off the BIO  
>> connector and add a NIO connector in var/config/config.xml or turn  
>> off the BIO connector in config.xml and add the appropriate  
>> connector to the geronimo plan for your app.  You can add the NIO  
>> connector using the admin console, but I think you need to turn  
>> off the BIO connector by editing config.xml when geronimo is not  
>> running.  add the attribute load="false" to the gbean entry for  
>> the BIO connector.
>>
>> Hope this helps
>> david jencks
>>
>>
>>>
>>> Thanks,
>>> Gautham.
>>>
>>> --View this message in context: http://www.nabble.com/Tomcat- 
>>> connectors-tf4132628s134.html#a12077742
>>> Sent from the Apache Geronimo - Dev mailing list archive at  
>>> Nabble.com.
>>>
>>
>>
>>
>> --No virus found in this incoming message.
>> Checked by AVG Free Edition.Version: 7.5.476 / Virus Database:  
>> 269.11.10/943 - Release Date: 8/8/2007 5:38 PM
>>
>>
>


Re: Tomcat connectors

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
David Jencks wrote:
>
> On Aug 9, 2007, at 11:18 AM, threepointsomething wrote:
>
>>
>> I am quite new to Geronimo, so I am not sure if the steps I followed are
>> right. Here goes:
>>
>> I had to ensure that the NIO connector is picked up in place of the 
>> basic
>> HTTP connector, so I made the following change in
>> configs\tomcat6\src\plan\plan.xml:
>>
>> &lt;gbean name="TomcatWebConnector"
>> class="org.apache.geronimo.tomcat.connector.Http11NIOConnectorGBean"&gt;
>>
>> I then rebuilt config\tomcat6\. When I started Geronimo, it picked up 
>> the
>> NIO connector as expected.
>>
>>   Listening on Ports:
>>     1050 127.0.0.1 CORBA Naming Service
>>     1099 0.0.0.0   RMI Naming
>>     1527 0.0.0.0   Derby Connector
>>     2001 127.0.0.1 OpenEJB ORB Adapter
>>     4201 0.0.0.0   OpenEJB Daemon
>>     6882 127.0.0.1 OpenEJB ORB Adapter
>>     8009 0.0.0.0   Tomcat Connector AJP AJP
>>     8080 0.0.0.0   Tomcat Connector HTTP NIO HTTP
>>     8443 0.0.0.0   Tomcat Connector HTTPS BIO HTTPS
>>     9999 0.0.0.0   JMX Remoting Connector
>>    61613 0.0.0.0   ActiveMQ Transport Connector
>>    61616 0.0.0.0   ActiveMQ Transport Connector
>>
>> I then ran a sample comet application (WAR) that was executing 
>> properly in
>> Tomcat and tried it in this instance of Geronimo. Seemed to work fine.
>>
>> I was wondering if there is a simpler way of configuring NIO without 
>> having
>> to rebuild config\tomcat6. If so can you please suggest how I can do 
>> that?
>
> Well, I expect we actually want to ship with the NIO connectors used 
> by default anyway, like we do for jetty.
I'd ship with the 6.0.14 code, tons of fixes since the last stable release.
the code has been voted stable and ready to announce, we're just waiting 
for the RM to pull his head out of his rear :)
http://people.apache.org/~remm/tomcat-6/v6.0.14/

Filip
>
> However until we get there you can either turn off the BIO connector 
> and add a NIO connector in var/config/config.xml or turn off the BIO 
> connector in config.xml and add the appropriate connector to the 
> geronimo plan for your app.  You can add the NIO connector using the 
> admin console, but I think you need to turn off the BIO connector by 
> editing config.xml when geronimo is not running.  add the attribute 
> load="false" to the gbean entry for the BIO connector.
>
> Hope this helps
> david jencks
>
>
>>
>> Thanks,
>> Gautham.
>>
>> --View this message in context: 
>> http://www.nabble.com/Tomcat-connectors-tf4132628s134.html#a12077742
>> Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.
>>
>
>
>
> --No virus found in this incoming message.
> Checked by AVG Free Edition.Version: 7.5.476 / Virus Database: 
> 269.11.10/943 - Release Date: 8/8/2007 5:38 PM
>
>


Re: Tomcat connectors

Posted by Gautham Pai <bu...@gmail.com>.
I would like to see this too.

Do you intend to make this change in the 2.0 version of Geronimo or later
(2.0.1/2.1)?

Thanks,
Gautham.


jgenender wrote:
> 
> 
> 
> David Jencks wrote:
>> Well, I expect we actually want to ship with the NIO connectors used by
>> default anyway, like we do for jetty.
>> 
> 
> +1...excellent idea.
> 
> Jeff
> 
> 

-- 
View this message in context: http://www.nabble.com/Tomcat-connectors-tf4132628s134.html#a12125013
Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.


Re: Tomcat connectors

Posted by Jeff Genender <jg...@apache.org>.

David Jencks wrote:
> Well, I expect we actually want to ship with the NIO connectors used by
> default anyway, like we do for jetty.
> 

+1...excellent idea.

Jeff

Re: Tomcat connectors

Posted by Jeff Genender <jg...@apache.org>.
Yeah...I would like to see us fix this at some point.  I think if we
delete a GBean, it should rebuild the car that it references or
something along those lines.  A deletion is a deletion and I think a
load="false" is not really a deletion.

Jeff

Paul McMahan wrote:
> On Aug 9, 2007, at 4:56 PM, threepointsomething wrote:
> 
>> I had removed the entire element &lt;gbean
>> name="TomcatWebConnector"&gt;...&lt;/gbean&gt; from config.xml. That
>> is when
>> it was showing 2 8080 connectors.
>>
>> If I use load="false" it seems fine and only 1 8080 connector is shown.
> 
> I think you are seeing this because when you remove that section of XML
> from config.xml you are not actually removing the connector, just the
> configuration overrides for it.  The connector is actually defined in
> tomcat's deployment plan.   Setting load="false" in config.xml prevents
> the connector (which was defined elsewhere) from starting.
> 
> 
> Best wishes,
> Paul

Re: Tomcat connectors

Posted by Paul McMahan <pa...@gmail.com>.
On Aug 9, 2007, at 4:56 PM, threepointsomething wrote:

> I had removed the entire element &lt;gbean
> name="TomcatWebConnector"&gt;...&lt;/gbean&gt; from config.xml.  
> That is when
> it was showing 2 8080 connectors.
>
> If I use load="false" it seems fine and only 1 8080 connector is  
> shown.

I think you are seeing this because when you remove that section of  
XML from config.xml you are not actually removing the connector, just  
the configuration overrides for it.  The connector is actually  
defined in tomcat's deployment plan.   Setting load="false" in  
config.xml prevents the connector (which was defined elsewhere) from  
starting.


Best wishes,
Paul

Re: Tomcat connectors

Posted by threepointsomething <bu...@gmail.com>.
I had removed the entire element &lt;gbean
name="TomcatWebConnector"&gt;...&lt;/gbean&gt; from config.xml. That is when
it was showing 2 8080 connectors.

If I use load="false" it seems fine and only 1 8080 connector is shown.

Is &lt;gbean name="TomcatWebConnector"&gt; a mandatory element?

Also one more observation. If I remove the entire element, while stopping
the server I get this:

ERROR [Connector] Coyote connector has not been started

Gautham.


jgenender wrote:
> 
> You should not have 2 8080 connectors.  Did you do a load="false" for
> the TomcatWebConnector?
> 
> Jeff
> 
> 

-- 
View this message in context: http://www.nabble.com/Tomcat-connectors-tf4132628s134.html#a12080641
Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.


Re: Tomcat connectors

Posted by Jeff Genender <jg...@apache.org>.
You should not have 2 8080 connectors.  Did you do a load="false" for
the TomcatWebConnector?

Jeff

threepointsomething wrote:
> Great!
> 
> I followed your suggestions and am now able to configure the connector via
> config.xml. Here are the steps:
> 
> 1. Ensure the server is not running.
> 2. Disable the BIO connector by making the following change in
> var\config\config.xml:
> 
> Remove the element &lt;gbean name="TomcatWebConnector"&gt; or change it to
> &lt;gbean name="TomcatWebConnector" load="false"&gt;
> 
> 3. Add the NIO connector by adding the following to var\config\config.xml:
> 
> 	&lt;gbean
> gbeanInfo="org.apache.geronimo.tomcat.connector.Http11NIOConnectorGBean"
> name="org.apache.geronimo.configs/tomcat6/2.0.1-SNAPSHOT/car?ServiceModule=org.apache.geronimo.configs/tomcat6/2.0.1-SNAPSHOT/car,j2eeType=GBean,name=TomcatNIOConnector"&gt;
>             &lt;attribute name="port"&gt;${HTTPPortPrimary +
> PortOffset}&lt;/attribute&gt;
>             &lt;attribute name="redirectPort"&gt;${HTTPSPortPrimary +
> PortOffset}&lt;/attribute&gt;
>             &lt;attribute name="maxThreads"&gt;150&lt;/attribute&gt;
>             &lt;attribute
> name="connectionTimeout"&gt;60000&lt;/attribute&gt;
>             &lt;attribute
> name="name"&gt;TomcatNIOConnector&lt;/attribute&gt;
>             &lt;attribute name="host"&gt;${ServerHostname}&lt;/attribute&gt;
>             &lt;reference name="TomcatContainer"&gt;
>                 &lt;pattern&gt;
>                    
> &lt;groupId&gt;org.apache.geronimo.configs&lt;/groupId&gt;
>                     &lt;artifactId&gt;tomcat6&lt;/artifactId&gt;
>                     &lt;version&gt;2.0.1-SNAPSHOT&lt;/version&gt;
>                     &lt;type&gt;car&lt;/type&gt;
>                     &lt;name&gt;TomcatWebContainer&lt;/name&gt;
>                 &lt;/pattern&gt;
>             &lt;/reference&gt;
>             &lt;reference name="ServerInfo"&gt;
>                 &lt;pattern&gt;
>                    
> &lt;groupId&gt;org.apache.geronimo.configs&lt;/groupId&gt;
>                     &lt;artifactId&gt;j2ee-system&lt;/artifactId&gt;
>                     &lt;version&gt;2.0.1-SNAPSHOT&lt;/version&gt;
>                     &lt;type&gt;car&lt;/type&gt;
>                     &lt;name&gt;ServerInfo&lt;/name&gt;
>                 &lt;/pattern&gt;
>             &lt;/reference&gt;
>         &lt;/gbean&gt;
> 
> 4. Start Geronimo. You should see the following:
> 
>   Listening on Ports:
>     1050 127.0.0.1 CORBA Naming Service
>     1099 0.0.0.0   RMI Naming
>     1527 0.0.0.0   Derby Connector
>     2001 127.0.0.1 OpenEJB ORB Adapter
>     4201 0.0.0.0   OpenEJB Daemon
>     6882 127.0.0.1 OpenEJB ORB Adapter
>     8009 0.0.0.0   Tomcat Connector AJP AJP
>     8080 0.0.0.0   Tomcat Connector HTTP NIO TomcatNIOConnector
>     8080 0.0.0.0   Tomcat Connector HTTP BIO HTTP
>     8443 0.0.0.0   Tomcat Connector HTTPS BIO HTTPS
>     9999 0.0.0.0   JMX Remoting Connector
>    61613 0.0.0.0   ActiveMQ Transport Connector
>    61616 0.0.0.0   ActiveMQ Transport Connector
> 
> (It seems to show 8080 with a BIO connector as well. Is this a bug?)
> 
> Gautham.
> 
> 
> djencks wrote:
>>
>> On Aug 9, 2007, at 11:18 AM, threepointsomething wrote:
>>
>>> I am quite new to Geronimo, so I am not sure if the steps I  
>>> followed are
>>> right. Here goes:
>>>
>>> I had to ensure that the NIO connector is picked up in place of the  
>>> basic
>>> HTTP connector, so I made the following change in
>>> configs\tomcat6\src\plan\plan.xml:
>>>
>>> &lt;gbean name="TomcatWebConnector"
>>> class="org.apache.geronimo.tomcat.connector.Http11NIOConnectorGBean"&g 
>>> t;
>>>
>>> I then rebuilt config\tomcat6\. When I started Geronimo, it picked  
>>> up the
>>> NIO connector as expected.
>>>
>>>   Listening on Ports:
>>>     1050 127.0.0.1 CORBA Naming Service
>>>     1099 0.0.0.0   RMI Naming
>>>     1527 0.0.0.0   Derby Connector
>>>     2001 127.0.0.1 OpenEJB ORB Adapter
>>>     4201 0.0.0.0   OpenEJB Daemon
>>>     6882 127.0.0.1 OpenEJB ORB Adapter
>>>     8009 0.0.0.0   Tomcat Connector AJP AJP
>>>     8080 0.0.0.0   Tomcat Connector HTTP NIO HTTP
>>>     8443 0.0.0.0   Tomcat Connector HTTPS BIO HTTPS
>>>     9999 0.0.0.0   JMX Remoting Connector
>>>    61613 0.0.0.0   ActiveMQ Transport Connector
>>>    61616 0.0.0.0   ActiveMQ Transport Connector
>>>
>>> I then ran a sample comet application (WAR) that was executing  
>>> properly in
>>> Tomcat and tried it in this instance of Geronimo. Seemed to work fine.
>>>
>>> I was wondering if there is a simpler way of configuring NIO  
>>> without having
>>> to rebuild config\tomcat6. If so can you please suggest how I can  
>>> do that?
>> Well, I expect we actually want to ship with the NIO connectors used  
>> by default anyway, like we do for jetty.
>>
>> However until we get there you can either turn off the BIO connector  
>> and add a NIO connector in var/config/config.xml or turn off the BIO  
>> connector in config.xml and add the appropriate connector to the  
>> geronimo plan for your app.  You can add the NIO connector using the  
>> admin console, but I think you need to turn off the BIO connector by  
>> editing config.xml when geronimo is not running.  add the attribute  
>> load="false" to the gbean entry for the BIO connector.
>>
>> Hope this helps
>> david jencks
>>
>>
>>> Thanks,
>>> Gautham.
>>>
>>> -- 
>>> View this message in context: http://www.nabble.com/Tomcat- 
>>> connectors-tf4132628s134.html#a12077742
>>> Sent from the Apache Geronimo - Dev mailing list archive at  
>>> Nabble.com.
>>>
>>
>>
> 

Re: Tomcat connectors

Posted by threepointsomething <bu...@gmail.com>.
Great!

I followed your suggestions and am now able to configure the connector via
config.xml. Here are the steps:

1. Ensure the server is not running.
2. Disable the BIO connector by making the following change in
var\config\config.xml:

Remove the element &lt;gbean name="TomcatWebConnector"&gt; or change it to
&lt;gbean name="TomcatWebConnector" load="false"&gt;

3. Add the NIO connector by adding the following to var\config\config.xml:

	&lt;gbean
gbeanInfo="org.apache.geronimo.tomcat.connector.Http11NIOConnectorGBean"
name="org.apache.geronimo.configs/tomcat6/2.0.1-SNAPSHOT/car?ServiceModule=org.apache.geronimo.configs/tomcat6/2.0.1-SNAPSHOT/car,j2eeType=GBean,name=TomcatNIOConnector"&gt;
            &lt;attribute name="port"&gt;${HTTPPortPrimary +
PortOffset}&lt;/attribute&gt;
            &lt;attribute name="redirectPort"&gt;${HTTPSPortPrimary +
PortOffset}&lt;/attribute&gt;
            &lt;attribute name="maxThreads"&gt;150&lt;/attribute&gt;
            &lt;attribute
name="connectionTimeout"&gt;60000&lt;/attribute&gt;
            &lt;attribute
name="name"&gt;TomcatNIOConnector&lt;/attribute&gt;
            &lt;attribute name="host"&gt;${ServerHostname}&lt;/attribute&gt;
            &lt;reference name="TomcatContainer"&gt;
                &lt;pattern&gt;
                   
&lt;groupId&gt;org.apache.geronimo.configs&lt;/groupId&gt;
                    &lt;artifactId&gt;tomcat6&lt;/artifactId&gt;
                    &lt;version&gt;2.0.1-SNAPSHOT&lt;/version&gt;
                    &lt;type&gt;car&lt;/type&gt;
                    &lt;name&gt;TomcatWebContainer&lt;/name&gt;
                &lt;/pattern&gt;
            &lt;/reference&gt;
            &lt;reference name="ServerInfo"&gt;
                &lt;pattern&gt;
                   
&lt;groupId&gt;org.apache.geronimo.configs&lt;/groupId&gt;
                    &lt;artifactId&gt;j2ee-system&lt;/artifactId&gt;
                    &lt;version&gt;2.0.1-SNAPSHOT&lt;/version&gt;
                    &lt;type&gt;car&lt;/type&gt;
                    &lt;name&gt;ServerInfo&lt;/name&gt;
                &lt;/pattern&gt;
            &lt;/reference&gt;
        &lt;/gbean&gt;

4. Start Geronimo. You should see the following:

  Listening on Ports:
    1050 127.0.0.1 CORBA Naming Service
    1099 0.0.0.0   RMI Naming
    1527 0.0.0.0   Derby Connector
    2001 127.0.0.1 OpenEJB ORB Adapter
    4201 0.0.0.0   OpenEJB Daemon
    6882 127.0.0.1 OpenEJB ORB Adapter
    8009 0.0.0.0   Tomcat Connector AJP AJP
    8080 0.0.0.0   Tomcat Connector HTTP NIO TomcatNIOConnector
    8080 0.0.0.0   Tomcat Connector HTTP BIO HTTP
    8443 0.0.0.0   Tomcat Connector HTTPS BIO HTTPS
    9999 0.0.0.0   JMX Remoting Connector
   61613 0.0.0.0   ActiveMQ Transport Connector
   61616 0.0.0.0   ActiveMQ Transport Connector

(It seems to show 8080 with a BIO connector as well. Is this a bug?)

Gautham.


djencks wrote:
> 
> 
> On Aug 9, 2007, at 11:18 AM, threepointsomething wrote:
> 
>>
>> I am quite new to Geronimo, so I am not sure if the steps I  
>> followed are
>> right. Here goes:
>>
>> I had to ensure that the NIO connector is picked up in place of the  
>> basic
>> HTTP connector, so I made the following change in
>> configs\tomcat6\src\plan\plan.xml:
>>
>> &lt;gbean name="TomcatWebConnector"
>> class="org.apache.geronimo.tomcat.connector.Http11NIOConnectorGBean"&g 
>> t;
>>
>> I then rebuilt config\tomcat6\. When I started Geronimo, it picked  
>> up the
>> NIO connector as expected.
>>
>>   Listening on Ports:
>>     1050 127.0.0.1 CORBA Naming Service
>>     1099 0.0.0.0   RMI Naming
>>     1527 0.0.0.0   Derby Connector
>>     2001 127.0.0.1 OpenEJB ORB Adapter
>>     4201 0.0.0.0   OpenEJB Daemon
>>     6882 127.0.0.1 OpenEJB ORB Adapter
>>     8009 0.0.0.0   Tomcat Connector AJP AJP
>>     8080 0.0.0.0   Tomcat Connector HTTP NIO HTTP
>>     8443 0.0.0.0   Tomcat Connector HTTPS BIO HTTPS
>>     9999 0.0.0.0   JMX Remoting Connector
>>    61613 0.0.0.0   ActiveMQ Transport Connector
>>    61616 0.0.0.0   ActiveMQ Transport Connector
>>
>> I then ran a sample comet application (WAR) that was executing  
>> properly in
>> Tomcat and tried it in this instance of Geronimo. Seemed to work fine.
>>
>> I was wondering if there is a simpler way of configuring NIO  
>> without having
>> to rebuild config\tomcat6. If so can you please suggest how I can  
>> do that?
> 
> Well, I expect we actually want to ship with the NIO connectors used  
> by default anyway, like we do for jetty.
> 
> However until we get there you can either turn off the BIO connector  
> and add a NIO connector in var/config/config.xml or turn off the BIO  
> connector in config.xml and add the appropriate connector to the  
> geronimo plan for your app.  You can add the NIO connector using the  
> admin console, but I think you need to turn off the BIO connector by  
> editing config.xml when geronimo is not running.  add the attribute  
> load="false" to the gbean entry for the BIO connector.
> 
> Hope this helps
> david jencks
> 
> 
>>
>> Thanks,
>> Gautham.
>>
>> -- 
>> View this message in context: http://www.nabble.com/Tomcat- 
>> connectors-tf4132628s134.html#a12077742
>> Sent from the Apache Geronimo - Dev mailing list archive at  
>> Nabble.com.
>>
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Tomcat-connectors-tf4132628s134.html#a12078907
Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.


Re: Tomcat connectors

Posted by David Jencks <da...@yahoo.com>.
On Aug 9, 2007, at 11:18 AM, threepointsomething wrote:

>
> I am quite new to Geronimo, so I am not sure if the steps I  
> followed are
> right. Here goes:
>
> I had to ensure that the NIO connector is picked up in place of the  
> basic
> HTTP connector, so I made the following change in
> configs\tomcat6\src\plan\plan.xml:
>
> &lt;gbean name="TomcatWebConnector"
> class="org.apache.geronimo.tomcat.connector.Http11NIOConnectorGBean"&g 
> t;
>
> I then rebuilt config\tomcat6\. When I started Geronimo, it picked  
> up the
> NIO connector as expected.
>
>   Listening on Ports:
>     1050 127.0.0.1 CORBA Naming Service
>     1099 0.0.0.0   RMI Naming
>     1527 0.0.0.0   Derby Connector
>     2001 127.0.0.1 OpenEJB ORB Adapter
>     4201 0.0.0.0   OpenEJB Daemon
>     6882 127.0.0.1 OpenEJB ORB Adapter
>     8009 0.0.0.0   Tomcat Connector AJP AJP
>     8080 0.0.0.0   Tomcat Connector HTTP NIO HTTP
>     8443 0.0.0.0   Tomcat Connector HTTPS BIO HTTPS
>     9999 0.0.0.0   JMX Remoting Connector
>    61613 0.0.0.0   ActiveMQ Transport Connector
>    61616 0.0.0.0   ActiveMQ Transport Connector
>
> I then ran a sample comet application (WAR) that was executing  
> properly in
> Tomcat and tried it in this instance of Geronimo. Seemed to work fine.
>
> I was wondering if there is a simpler way of configuring NIO  
> without having
> to rebuild config\tomcat6. If so can you please suggest how I can  
> do that?

Well, I expect we actually want to ship with the NIO connectors used  
by default anyway, like we do for jetty.

However until we get there you can either turn off the BIO connector  
and add a NIO connector in var/config/config.xml or turn off the BIO  
connector in config.xml and add the appropriate connector to the  
geronimo plan for your app.  You can add the NIO connector using the  
admin console, but I think you need to turn off the BIO connector by  
editing config.xml when geronimo is not running.  add the attribute  
load="false" to the gbean entry for the BIO connector.

Hope this helps
david jencks


>
> Thanks,
> Gautham.
>
> -- 
> View this message in context: http://www.nabble.com/Tomcat- 
> connectors-tf4132628s134.html#a12077742
> Sent from the Apache Geronimo - Dev mailing list archive at  
> Nabble.com.
>


Re: Tomcat connectors

Posted by threepointsomething <bu...@gmail.com>.
I am quite new to Geronimo, so I am not sure if the steps I followed are
right. Here goes:

I had to ensure that the NIO connector is picked up in place of the basic
HTTP connector, so I made the following change in
configs\tomcat6\src\plan\plan.xml:

&lt;gbean name="TomcatWebConnector"
class="org.apache.geronimo.tomcat.connector.Http11NIOConnectorGBean"&gt;

I then rebuilt config\tomcat6\. When I started Geronimo, it picked up the
NIO connector as expected.

  Listening on Ports:
    1050 127.0.0.1 CORBA Naming Service
    1099 0.0.0.0   RMI Naming
    1527 0.0.0.0   Derby Connector
    2001 127.0.0.1 OpenEJB ORB Adapter
    4201 0.0.0.0   OpenEJB Daemon
    6882 127.0.0.1 OpenEJB ORB Adapter
    8009 0.0.0.0   Tomcat Connector AJP AJP
    8080 0.0.0.0   Tomcat Connector HTTP NIO HTTP
    8443 0.0.0.0   Tomcat Connector HTTPS BIO HTTPS
    9999 0.0.0.0   JMX Remoting Connector
   61613 0.0.0.0   ActiveMQ Transport Connector
   61616 0.0.0.0   ActiveMQ Transport Connector

I then ran a sample comet application (WAR) that was executing properly in
Tomcat and tried it in this instance of Geronimo. Seemed to work fine.

I was wondering if there is a simpler way of configuring NIO without having
to rebuild config\tomcat6. If so can you please suggest how I can do that?

Thanks,
Gautham.

-- 
View this message in context: http://www.nabble.com/Tomcat-connectors-tf4132628s134.html#a12077742
Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.


Re: Tomcat connectors

Posted by Paul McMahan <pa...@gmail.com>.
That's great!  Thanks for letting us know.  Would you mind sharing  
what steps you took to make this work?  We have a wiki at http:// 
cwiki.apache.org/GMOxDOC20/documentation.html where you could record  
this information.  Or if you would rather just respond to this thread  
then I would be happy to transcribe to the wiki.

Best wishes,
Paul


On Aug 9, 2007, at 9:14 AM, threepointsomething wrote:

>
> I was finally able to get Comet to work in Geronimo using the  
> Tomcat NIO
> connector.
>
> Thanks,
> Gautham.
>
> Paul McMahan-2 wrote:
>>
>> This work is complete now and available in trunk and the 2.0 branch.
>> As a side effect of introducing these new connectors we needed to
>> make some changes to the management apis (mainly WebManager) to allow
>> the connectors to specify which attributes they support, what their
>> types are (string, boolean, integer, etc), whether or not they are
>> required vs. optional, etc.  All this used to be hard coded in the
>> portlet but now they are defined per connector type in
>> JettyManagerImpl and TomcatManagerImpl and the portlet just renders a
>> form with corresponding inputs and validation.
>>
>> I tried to cover as much testing as possible within our proposed
>> timeframe for 2.0 but there may still be some rough edges.   In
>> particular I was not able to test the APR connectors without having
>> the native libraries.  You can successfully create an APR connector
>> but without the libraries it won't start due to an unsatisfied link
>> error (as expected).
>>
>> Thanks to Jeff and David Jencks for all their help on getting this
>> important feature into 2.0.
>>
>> Best wishes,
>> Paul
>>
>> On Jul 25, 2007, at 1:43 PM, Jeff Genender wrote:
>>
>>> Ok I added a whole bunch of new connectors in the o.a.g.t.connectors
>>> package.
>>>
>>> I am still working on APR - more notes to follow on this as its a
>>> little
>>> squirly since the Tomcat Connector somewhat "chooses" this
>>> automatically
>>> based on the existence of a native libraries.  For the console we  
>>> may
>>> wish to do a check on whether the native libs exist, and if so,
>>> present
>>> the APR connector.  More on this in another email.
>>>
>>> Here are the connectors we care about at the moment...
>>>
>>> AJP13ConnectorGBean - Implements AJP
>>> Http11ConnectorGBean - Implements blocking Http connector
>>> Https11ConnectorGBean  - Implements blocking Https connector
>>> Http11NIOConnectorGBean - Implements non-blocking Http connector
>>> Https11NIOConnectorGBean - Implements non-blocking Https connector
>>>
>>> I have not wired them into the container and other GBeans yet...I  
>>> want
>>> to clena them up and get any feedback before making the switch since
>>> this obviously will impact the console upon wiring them in.
>>>
>>> As a side note...I am not using any references to the WebManager or
>>> other interfaces we used that hooked into the console.  We can re- 
>>> add
>>> those if those are deemed necessary.
>>>
>>> Jeff
>>>
>>> Paul McMahan wrote:
>>>> I agree NIO support would be great to have in 2.0, especially
>>>> since its
>>>> required for comet.
>>>>
>>>> Best wishes,
>>>> Paul
>>>>
>>>> On Jul 23, 2007, at 2:42 PM, Jeff Genender wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I was going through some JIRAs and the Geronimo2.0 source and
>>>>> noticed it
>>>>> will be difficult at best to get the NIO connector and setting
>>>>> attributes on the APR connector for Tomcat due to its current
>>>>> implementation.  I really think the ability to use these 2
>>>>> connectors is
>>>>> very important for the 2.0 release and I would like to put these
>>>>> in.  If
>>>>> there are no objections, I would like this to be a part of the 2.0
>>>>> release.
>>>>>
>>>>> Jeff
>>
>>
>>
>
> -- 
> View this message in context: http://www.nabble.com/Tomcat- 
> connectors-tf4132628s134.html#a12072217
> Sent from the Apache Geronimo - Dev mailing list archive at  
> Nabble.com.
>


Re: Tomcat connectors

Posted by threepointsomething <bu...@gmail.com>.
I was finally able to get Comet to work in Geronimo using the Tomcat NIO
connector.

Thanks,
Gautham.

Paul McMahan-2 wrote:
> 
> This work is complete now and available in trunk and the 2.0 branch.   
> As a side effect of introducing these new connectors we needed to  
> make some changes to the management apis (mainly WebManager) to allow  
> the connectors to specify which attributes they support, what their  
> types are (string, boolean, integer, etc), whether or not they are  
> required vs. optional, etc.  All this used to be hard coded in the  
> portlet but now they are defined per connector type in  
> JettyManagerImpl and TomcatManagerImpl and the portlet just renders a  
> form with corresponding inputs and validation.
> 
> I tried to cover as much testing as possible within our proposed  
> timeframe for 2.0 but there may still be some rough edges.   In  
> particular I was not able to test the APR connectors without having  
> the native libraries.  You can successfully create an APR connector  
> but without the libraries it won't start due to an unsatisfied link  
> error (as expected).
> 
> Thanks to Jeff and David Jencks for all their help on getting this  
> important feature into 2.0.
> 
> Best wishes,
> Paul
> 
> On Jul 25, 2007, at 1:43 PM, Jeff Genender wrote:
> 
>> Ok I added a whole bunch of new connectors in the o.a.g.t.connectors
>> package.
>>
>> I am still working on APR - more notes to follow on this as its a  
>> little
>> squirly since the Tomcat Connector somewhat "chooses" this  
>> automatically
>> based on the existence of a native libraries.  For the console we may
>> wish to do a check on whether the native libs exist, and if so,  
>> present
>> the APR connector.  More on this in another email.
>>
>> Here are the connectors we care about at the moment...
>>
>> AJP13ConnectorGBean - Implements AJP
>> Http11ConnectorGBean - Implements blocking Http connector
>> Https11ConnectorGBean  - Implements blocking Https connector
>> Http11NIOConnectorGBean - Implements non-blocking Http connector
>> Https11NIOConnectorGBean - Implements non-blocking Https connector
>>
>> I have not wired them into the container and other GBeans yet...I want
>> to clena them up and get any feedback before making the switch since
>> this obviously will impact the console upon wiring them in.
>>
>> As a side note...I am not using any references to the WebManager or
>> other interfaces we used that hooked into the console.  We can re-add
>> those if those are deemed necessary.
>>
>> Jeff
>>
>> Paul McMahan wrote:
>>> I agree NIO support would be great to have in 2.0, especially  
>>> since its
>>> required for comet.
>>>
>>> Best wishes,
>>> Paul
>>>
>>> On Jul 23, 2007, at 2:42 PM, Jeff Genender wrote:
>>>
>>>> Hi,
>>>>
>>>> I was going through some JIRAs and the Geronimo2.0 source and  
>>>> noticed it
>>>> will be difficult at best to get the NIO connector and setting
>>>> attributes on the APR connector for Tomcat due to its current
>>>> implementation.  I really think the ability to use these 2  
>>>> connectors is
>>>> very important for the 2.0 release and I would like to put these  
>>>> in.  If
>>>> there are no objections, I would like this to be a part of the 2.0
>>>> release.
>>>>
>>>> Jeff
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Tomcat-connectors-tf4132628s134.html#a12072217
Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.