You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@roller.apache.org by David Fisher <df...@jmlafferty.com> on 2008/01/12 04:39:44 UTC
Roller Configuration Advise Request
Hi -
Perhaps someone can give me a little advise about how to best proceed
with a Roller configuration we are building.
We are using JDK 5.0, Tomcat 5.5, and Derby switched from embedded to
the network config. (We also have Lucene and POI in our web app)
We have multiple domain names. I want to configure a very similar
combination of our web app and with a roller weblog for each. At the
moment. I don't care if I can or cannot access all the blogs in each
domain.
I've tried a couple of combinations and each has a drawback. I spent
some time reviewing the open JIRA issues which has given me a
somewhat fuzzy idea that "clustering" issues are mostly addressed.
I'm looking for a possible approach, and I am quite willing to
scratch my itch by going into the code.
I plan to move into production soon where we cluster by load
balancing on 5 servers. The roller_data and themes directories will
be on a shared drive. I am aware that the lucene based search may not
work well, but that is a limitation we can accept.
Here are the configurations that we have tried.
(1) Each domain has its own Host Context in Tomcat, and each has its
own Roller instance that is using the same database.
Everything was generally working sufficiently well until I started
paying attention to the unusually long time it took the Tomcat JVM to
shutdown. I explored the situation using jconsole and determined
that with multiple contexts running Roller that there would be an
orphaned HitCountQueueProcessor waiting to wake up for its 3 minutes
of sleep. This information was supplemented by the logs. Experiments
proved that this was always the case until I only had a single Context.
(2) All domains use a single Context with one domain "owning" it and
the others as aliases and of course a single database.
Here the trouble is $url.absoluteSite which appears to be the root
for the rest of the $url macros. This takes the url of the first host
or alias that hits roller after tomcat is started. Of course this
causes all kinds of issues with the links on the web pages.
Not really acceptable. So, I am wondering what to do. Here are some
ideas that I have, but I would appreciate some help.
(A) Try (1) again but have a different database or db user for each
Context.
(B) Somehow get into all the velocity macros and make the URLs come
out the way I want, and accept that the authoring system may look
funny to my handful of authors.
(C) Get into the Filter mechanism and adjust the $url model myself.
(D) Find another blog tool. Yuck, I like Roller ...
(E) Have a production load balancing config that sends each domain's
roller traffic to a single, unique server. I have 5 servers and 4
domains.
(F) Just live with the up to 3 minute delay when restarting the server.
Personally I like (A), (C), and then (F)
Thanks in advance for any advise.
Regards,
Dave
Re: Roller Configuration Advise Request
Posted by David Fisher <df...@jmlafferty.com>.
>> Hi Gabe,
>>
>>> Are each domain a separate entity? It is not clear if the domain
>>> (blog instance) are separate because the users are different or
>>> they are
>>> separate because they are nodes in a cluster for load balancing
>>> purposes (thus appearing as one against 1 database)?
>>
>> The domains are separate businesses / product lines with a common
>> web technology that we have built over the last 6 years.
>>
>> So they are different for business reasons, not technological.
>> That is why I am not worried about blogs being accessible from the
>> other, someone will have to work to do so.
>>
>> And no I can't have all the blogs in one domain because some of
>> our partner's customers must enable javascript explicitly for a
>> domain.
> In that case would it not be simpler to have complete separate
> instances of Roller with different Databases for each business entity.
> You can do so in 2 ways.
>
> 1)Separate instances in the same JVM like so:
> http://www.biz1.com/roller1
> http://www.biz2.com/roller2
> http://www.biz3.com/roller3
That is already my first config. Here is where I had the issue with
lingering / orphaned HitCountQueueProcessor objects on JVM shutdown.
I guess I am going to go back to it. I'll sleep on shutdown and then
kill.
> 2)Separate instances in DIFFERENT JVMs installed as ROOT context
> like so:
> http://blog.biz1.com
> http://blog.biz2.com
> http://blog.biz3.com
Yes, possible except for a characteristic of our webapps where we
have a large memory cache in each JVM. We also have implemented
mutlicasting to dirty our cache between each server. It is very
effective.
Thanks.
Regards,
Dave
>
>
>
> --
> Regards
>
> Gabe Wong
> NGASI AppServer Manager
> JAVA AUTOMATION and SaaS Enablement
> <a href=http://www.ngasi.com>http://www.ngasi.com</a>
> NEW! 8.0 - Centrally manage multiple physical servers
>
>
Re: Roller Configuration Advise Request
Posted by Gabe Wong <ga...@ngasi.com>.
David Fisher wrote:
> Hi Gabe,
>
>> Are each domain a separate entity? It is not clear if the domain
>> (blog instance) are separate because the users are different or they are
>> separate because they are nodes in a cluster for load balancing
>> purposes (thus appearing as one against 1 database)?
>
> The domains are separate businesses / product lines with a common web
> technology that we have built over the last 6 years.
>
> So they are different for business reasons, not technological. That is
> why I am not worried about blogs being accessible from the other,
> someone will have to work to do so.
>
> And no I can't have all the blogs in one domain because some of our
> partner's customers must enable javascript explicitly for a domain.
In that case would it not be simpler to have complete separate instances
of Roller with different Databases for each business entity.
You can do so in 2 ways.
1)Separate instances in the same JVM like so:
http://www.biz1.com/roller1
http://www.biz2.com/roller2
http://www.biz3.com/roller3
2)Separate instances in DIFFERENT JVMs installed as ROOT context like so:
http://blog.biz1.com
http://blog.biz2.com
http://blog.biz3.com
--
Regards
Gabe Wong
NGASI AppServer Manager
JAVA AUTOMATION and SaaS Enablement
<a href=http://www.ngasi.com>http://www.ngasi.com</a>
NEW! 8.0 - Centrally manage multiple physical servers
Re: Roller Configuration Advise Request
Posted by David Fisher <df...@jmlafferty.com>.
Hi Gabe,
> Are each domain a separate entity? It is not clear if the domain
> (blog instance) are separate because the users are different or
> they are
> separate because they are nodes in a cluster for load balancing
> purposes (thus appearing as one against 1 database)?
The domains are separate businesses / product lines with a common web
technology that we have built over the last 6 years.
So they are different for business reasons, not technological. That
is why I am not worried about blogs being accessible from the other,
someone will have to work to do so.
And no I can't have all the blogs in one domain because some of our
partner's customers must enable javascript explicitly for a domain.
> David Fisher wrote:
>> Hi -
>>
>> Perhaps someone can give me a little advise about how to best
>> proceed with a Roller configuration we are building.
>>
>> We are using JDK 5.0, Tomcat 5.5, and Derby switched from embedded
>> to the network config. (We also have Lucene and POI in our web app)
>>
>> We have multiple domain names. I want to configure a very similar
>> combination of our web app and with a roller weblog for each. At
>> the moment. I don't care if I can or cannot access all the blogs
>> in each domain.
>>
>> I've tried a couple of combinations and each has a drawback. I
>> spent some time reviewing the open JIRA issues which has given me
>> a somewhat fuzzy idea that "clustering" issues are mostly
>> addressed. I'm looking for a possible approach, and I am quite
>> willing to scratch my itch by going into the code.
>>
>> I plan to move into production soon where we cluster by load
>> balancing on 5 servers. The roller_data and themes directories
>> will be on a shared drive. I am aware that the lucene based search
>> may not work well, but that is a limitation we can accept.
>>
>> Here are the configurations that we have tried.
>>
>> (1) Each domain has its own Host Context in Tomcat, and each has
>> its own Roller instance that is using the same database.
>>
>> Everything was generally working sufficiently well until I started
>> paying attention to the unusually long time it took the Tomcat JVM
>> to shutdown. I explored the situation using jconsole and
>> determined that with multiple contexts running Roller that there
>> would be an orphaned HitCountQueueProcessor waiting to wake up for
>> its 3 minutes of sleep. This information was supplemented by the
>> logs. Experiments proved that this was always the case until I
>> only had a single Context.
>>
>> (2) All domains use a single Context with one domain "owning" it
>> and the others as aliases and of course a single database.
>>
>> Here the trouble is $url.absoluteSite which appears to be the root
>> for the rest of the $url macros. This takes the url of the first
>> host or alias that hits roller after tomcat is started. Of course
>> this causes all kinds of issues with the links on the web pages.
>>
>> Not really acceptable. So, I am wondering what to do. Here are
>> some ideas that I have, but I would appreciate some help.
>>
>> (A) Try (1) again but have a different database or db user for
>> each Context.
>>
>> (B) Somehow get into all the velocity macros and make the URLs
>> come out the way I want, and accept that the authoring system may
>> look funny to my handful of authors.
>>
>> (C) Get into the Filter mechanism and adjust the $url model myself.
>>
>> (D) Find another blog tool. Yuck, I like Roller ...
>>
>> (E) Have a production load balancing config that sends each
>> domain's roller traffic to a single, unique server. I have 5
>> servers and 4 domains.
>>
>> (F) Just live with the up to 3 minute delay when restarting the
>> server.
>>
>> Personally I like (A), (C), and then (F)
>>
>> Thanks in advance for any advise.
>>
>> Regards,
>> Dave
>
Regards,
Dave
>
> --
> Regards
>
> Gabe Wong
> NGASI AppServer Manager
> JAVA AUTOMATION and SaaS Enablement
> <a href=http://www.ngasi.com>http://www.ngasi.com</a>
> NEW! 8.0 - Centrally manage multiple physical servers
>
>
Re: Roller Configuration Advise Request
Posted by Gabe Wong <ga...@ngasi.com>.
David Fisher wrote:
> Hi -
>
> Perhaps someone can give me a little advise about how to best proceed
> with a Roller configuration we are building.
>
> We are using JDK 5.0, Tomcat 5.5, and Derby switched from embedded to
> the network config. (We also have Lucene and POI in our web app)
>
> We have multiple domain names. I want to configure a very similar
> combination of our web app and with a roller weblog for each. At the
> moment. I don't care if I can or cannot access all the blogs in each
> domain.
>
> I've tried a couple of combinations and each has a drawback. I spent
> some time reviewing the open JIRA issues which has given me a somewhat
> fuzzy idea that "clustering" issues are mostly addressed. I'm looking
> for a possible approach, and I am quite willing to scratch my itch by
> going into the code.
>
> I plan to move into production soon where we cluster by load balancing
> on 5 servers. The roller_data and themes directories will be on a
> shared drive. I am aware that the lucene based search may not work
> well, but that is a limitation we can accept.
>
> Here are the configurations that we have tried.
>
> (1) Each domain has its own Host Context in Tomcat, and each has its
> own Roller instance that is using the same database.
>
> Everything was generally working sufficiently well until I started
> paying attention to the unusually long time it took the Tomcat JVM to
> shutdown. I explored the situation using jconsole and determined that
> with multiple contexts running Roller that there would be an orphaned
> HitCountQueueProcessor waiting to wake up for its 3 minutes of sleep.
> This information was supplemented by the logs. Experiments proved that
> this was always the case until I only had a single Context.
>
> (2) All domains use a single Context with one domain "owning" it and
> the others as aliases and of course a single database.
>
> Here the trouble is $url.absoluteSite which appears to be the root for
> the rest of the $url macros. This takes the url of the first host or
> alias that hits roller after tomcat is started. Of course this causes
> all kinds of issues with the links on the web pages.
>
> Not really acceptable. So, I am wondering what to do. Here are some
> ideas that I have, but I would appreciate some help.
>
> (A) Try (1) again but have a different database or db user for each
> Context.
>
> (B) Somehow get into all the velocity macros and make the URLs come
> out the way I want, and accept that the authoring system may look
> funny to my handful of authors.
>
> (C) Get into the Filter mechanism and adjust the $url model myself.
>
> (D) Find another blog tool. Yuck, I like Roller ...
>
> (E) Have a production load balancing config that sends each domain's
> roller traffic to a single, unique server. I have 5 servers and 4
> domains.
>
> (F) Just live with the up to 3 minute delay when restarting the server.
>
> Personally I like (A), (C), and then (F)
>
> Thanks in advance for any advise.
>
> Regards,
> Dave
Are each domain a separate entity? It is not clear if the domain (blog
instance) are separate because the users are different or they are
separate because they are nodes in a cluster for load balancing purposes
(thus appearing as one against 1 database)?
--
Regards
Gabe Wong
NGASI AppServer Manager
JAVA AUTOMATION and SaaS Enablement
<a href=http://www.ngasi.com>http://www.ngasi.com</a>
NEW! 8.0 - Centrally manage multiple physical servers