<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic limit on number of web projects in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88328#M59915</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have uploaded about 35 projects as "web projects" in my new Alfresco installation.&amp;nbsp; And, not surprisingly, the virtual server falls over because it runs out of memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) A bunch of the apps aren't even webapps and could easily be run through an Apache server instead of tomcat.&amp;nbsp; Is it possible to make the virtual server NOT recognize certain apps?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2) Along those lines, can the virtual server be configured to look at some apps and not others?&amp;nbsp; That way I could setup 2 or 3 virtual Tomcats (on different machines) and have certain instances preview certain apps.&amp;nbsp; Possibly by setting up &amp;lt;Context&amp;gt; elements inside the &amp;lt;Host&amp;gt; element in the virtual-tomcat/conf/server.xml?&amp;nbsp; I would funnel all the requests through one Apache instance, so the preview domain name would be constant.&amp;nbsp; Is this separation possible?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Charlie&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 03 May 2007 14:59:00 GMT</pubDate>
    <dc:creator>sbzoom</dc:creator>
    <dc:date>2007-05-03T14:59:00Z</dc:date>
    <item>
      <title>limit on number of web projects</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88328#M59915</link>
      <description>Hello again.I have uploaded about 35 projects as "web projects" in my new Alfresco installation.&amp;nbsp; And, not surprisingly, the virtual server falls over because it runs out of memory.1) A bunch of the apps aren't even webapps and could easily be run through an Apache server instead of tomcat.&amp;nbsp; Is it p</description>
      <pubDate>Thu, 03 May 2007 14:59:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88328#M59915</guid>
      <dc:creator>sbzoom</dc:creator>
      <dc:date>2007-05-03T14:59:00Z</dc:date>
    </item>
    <item>
      <title>Re: limit on number of web projects</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88329#M59916</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Ok.&amp;nbsp; It's not the &amp;lt;Context&amp;gt; element that I need to mess with.&amp;nbsp; It's the &amp;lt;Host&amp;gt; element.&amp;nbsp; By looking at AVMHost.java and AVMHostConfig.java I see what the &amp;lt;Host&amp;gt; element in the virtual Tomcat config is doing.&amp;nbsp; It is looping through each directory in the "avm" mount and setting it up as a virtual host (or as just a &amp;lt;Context&amp;gt; element - still not 100% sure).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What I want to be able to do is give the AVMHost.java or AMVHostConfig.java a list of folder paths to deploy.&amp;nbsp; Like, I give it a list of 5 apps to deploy, maybe 10.&amp;nbsp; This way it doesn't try to deploy all of them and run out of memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can see it happening in the logs:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;org.alfresco.catalina.host.AVMHostConfig.deployAllAVMwebappsInRepository&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Deploy ALL avm webapps in repository.&amp;nbsp; How can I make it deploy SOME?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Charlie&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 May 2007 20:56:01 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88329#M59916</guid>
      <dc:creator>sbzoom</dc:creator>
      <dc:date>2007-05-03T20:56:01Z</dc:date>
    </item>
    <item>
      <title>Re: limit on number of web projects</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88330#M59917</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Charlie,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There are three short-term approaches you could take:&lt;/SPAN&gt;&lt;BR /&gt;&lt;UL&gt;[1]&amp;nbsp; Increase the memory alloted to the JVM&lt;BR /&gt;[2]&amp;nbsp; Wait a few months until the feature you want is released&lt;BR /&gt;[3]&amp;nbsp; Hack the code until the supported feature arrives&lt;/UL&gt;&lt;SPAN&gt;Approach [1]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;—————&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Obviously, there are limits to what you can do here,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;but depending on what you're doing, it might be adequate.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You may be nowhere near running out of virtual memory,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;but instead are hitting the artificial limit imposed on the JVM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;by a configurable option.&amp;nbsp; On Linux/Mac/Solaris you can increase&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;this limit by tuning the -XmX flag:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;#—————————————————————-&lt;BR /&gt;#&amp;nbsp; The -server&amp;nbsp;&amp;nbsp; flag avoids problems on Linux and Mac.&lt;BR /&gt;#&amp;nbsp; The -Xmx512M flag gives the JVM ample memory.&lt;BR /&gt;#—————————————————————-&lt;BR /&gt;if ! [[ "${CATALINA_OPTS}" =~ '-server' ]]; then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CATALINA_OPTS="$CATALINA_OPTS -server"&lt;BR /&gt;fi&lt;BR /&gt;&lt;BR /&gt;if ! [[ "${CATALINA_OPTS}" =~ '-Xmx' ]]; then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CATALINA_OPTS="$CATALINA_OPTS -Xmx512M"&lt;BR /&gt;fi&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;On Windows, if you've got the virtualization server installed&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;as a service you can adjust the registry setting used by&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the JVM using the tomcat executable itself.&amp;nbsp;&amp;nbsp; The tunables&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;on Windows are:&lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp; tomcat5 //US// –JvmSs NNN&lt;BR /&gt;&amp;nbsp; tomcat5 //US// –JvmMs NNN&lt;BR /&gt;&amp;nbsp; tomcat5 //US// –JvmMx NNN&lt;BR /&gt;&amp;nbsp; etc…&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;Or you could tune them all at once:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;tomcat5 //US// –JvmSs NNN –JvmMs NNN –JvmMx NNN&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Approach [2]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;—————-&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The feature you want is currently in the planning stage.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It's mentioned in the Virtualization Server FAQ:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://wiki.alfresco.com/wiki/Virtualization_Server_FAQ#Multiple_virtualization_servers_per_webapp" rel="nofollow noopener noreferrer"&gt;http://wiki.alfresco.com/wiki/Virtualization_Server_FAQ#Multiple_virtualization_servers_per_webapp&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;To do this nicely will require some of the new 2.1 features in the backend&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(such as the newly developed AttributeService), as well as GUI support,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and a nice way to configure things for both redundancy and work partitioning.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Speaking of that, here's what I've been thinking about so far:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;all virtualization servers (tomcat, apache, etc) will register&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;themselves with the alfresco webapp and specify what they&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;are willing &amp;amp; unwilling to virtualize, along with other metadata&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;that will be useful for handling user/project preferences.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;On the webapp side, there could also be project-specific and&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;user-specific preferences.&amp;nbsp; To keep things simple, the default&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;config is to place every server the "global" pool, and do&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;session-bound load balancing; however,&amp;nbsp; with tuning the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;admin will be able to route different web projects to different&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;servers, and/or to different sub-pools of servers based on the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;meta info&amp;nbsp; (e.g.: apache+php vs tomcat).&amp;nbsp;&amp;nbsp; Ideally, we'll&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;also have user-level prefs that will allow advanced users&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;to override project level &amp;amp; global defaults.&amp;nbsp; Eventually, I'd also&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;like to check heartbeats on the server pool and provide automatic&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;pool-aware failover in the web client.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Another thing I've been considering is the role of an EJB (Mule?)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;in all of this.&amp;nbsp; A general-purpose message bus would be extremely&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;useful, and pools of servers is a nice first client. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Anyway, the "wait for a while" approach will give you something&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;very nice&amp;nbsp; &amp;amp; powerful, but other things are higher priority at the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;moment (e.g.: link management),&amp;nbsp; so I probably won't get to &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;this for a few months.&amp;nbsp;&amp;nbsp; As I hope you can see, I *have* thought&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;about it a fair amount, and I regard it as an extremely important&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;core capability.&amp;nbsp;&amp;nbsp; We will get there, but I want to do it right.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If you have questions, suggestions, and/or specific requirements&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;you'd like addressed please let me know.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Approach [3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;—————&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hacking the source probably means throwing away your work&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(or maintaining it) when you upgrade.&amp;nbsp;&amp;nbsp; However, the ability&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;to choose "swimming at your own risk" is one of the major&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;benefits of open source, so don't take my words of warning&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;as discouragement –&amp;nbsp; I just want you to be aware that depending&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;on the level of integration you're shooting for, it might be a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;fair amount of work for what's ultimately a stopgap.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There are a lot of fussy details to get right.&amp;nbsp;&amp;nbsp; If you&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;don't have a good understanding of tomcat's internals,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;alfresco's internals, transactions, spring, and so forth,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;it might end up being a bigger project for you than &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;it seems. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;With these caveats in mind,&amp;nbsp; if you are going to going to hack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AVMHostConfig,&amp;nbsp; the first thing you'll need to do is filter out&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;all repositories you don't want to virtualize.&amp;nbsp;&amp;nbsp; Next, be aware&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;that repositories form hierarchies that reflect the transparent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;overlay structure within the AVM.&amp;nbsp;&amp;nbsp; These hierarchies allow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the virt server to scale horizontally across many users &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;per common staging area.&amp;nbsp;&amp;nbsp; Next,&amp;nbsp; it's important to consider&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;that updates to the virt server take place via JMX messages&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and that while there *is* a registration process that takes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;place,&amp;nbsp; this registration is currently just expecting a single&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;virt server, not a collection.&amp;nbsp;&amp;nbsp; The code was written with an&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;eye towards pools but none of it is there yet, and the webapp&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;does not support any sort of dynamic update when it comes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;to registration and/or heartbeat failure.&amp;nbsp;&amp;nbsp; There's other stuff&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;to worry about too, such as handing broadcasts gracefully&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;in the face of intermittent network failures, and so on.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Recommendation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;——————–&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My best guess is that you should try [1] first.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If you win, great.&amp;nbsp;&amp;nbsp; If not, wait.&amp;nbsp; However, if you&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;really want "something that does something" now,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'd limit the hackery to support for a single server that&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;just ignores certain projects &amp;amp; sandboxes. Doing a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;multi-server config properly seems like too much&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;time invested in a throw-away.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In any event, I hope this overview helps you to&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;understand the tradeoffs &amp;amp; make a decision that's&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;appropriate for your application.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -Jon&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 May 2007 16:25:28 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88330#M59917</guid>
      <dc:creator>jcox</dc:creator>
      <dc:date>2007-05-04T16:25:28Z</dc:date>
    </item>
    <item>
      <title>Re: limit on number of web projects</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88331#M59918</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Jon,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks much for the reply.&amp;nbsp; Made lots of sense.&amp;nbsp; I had already been looking at the code in svn to see how it all connects.&amp;nbsp; What I had been thinking was something pretty simple, since I know there is a lot going on with all the mbean registration and all that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here in deployAllAVMwebappsInRepository() is where I would try to pass some kind of list of repositories.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void deployAllAVMwebappsInRepository()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HashMap&amp;lt;String, AVMWebappDescriptor&amp;gt; webapp_descriptors =&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new HashMap&amp;lt;String, AVMWebappDescriptor&amp;gt;();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LinkedList&amp;lt;String&amp;gt; avm_webapp_paths = new LinkedList&amp;lt;String&amp;gt;();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, Map&amp;lt;QName, PropertyValue&amp;gt;&amp;gt; store_dns_entries = &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AVMRemote_.queryStoresPropertyKey(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QName.createQName(null,".dns.%"));&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( Map.Entry&amp;lt;String, Map&amp;lt;QName, PropertyValue&amp;gt;&amp;gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; store_dns_entry&amp;nbsp; :&amp;nbsp; store_dns_entries.entrySet() )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String store_name&amp;nbsp; = store_dns_entry.getKey();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;String store_name&amp;nbsp; = store_dns_entry.getKey();&lt;BR /&gt;for( String registeredStoreName : registeredStoreNames )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( store_name.contains( registeredStoreName ) )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // rest of code as-is from here&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;This way everything else would be registered and setup as it was before, but with a limited number of stores.&amp;nbsp; Now, I still have not yet figured out how to pass such a list into AVMHostConfig, but I'll get there.&amp;nbsp;&amp;nbsp; :wink: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Does that sound like a good temporary solution?&amp;nbsp; Or one that will fall over immediately.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the meantime my steps will be as follows:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1] Move the virtual server to its own machine&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [a] give it plenty of RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG&gt; increase the jvm size&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [2] Bring down the amount of apps I have from 35 to something like&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10 or 12 (the most that Tomcat usually seems to be able to handle).&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [3] Try out my wacky code hacks.&lt;BR /&gt;&lt;BR /&gt;But there is something else to consider here.&amp;nbsp; Say I have only 5 web project spaces.&amp;nbsp; But for each of those spaces, I have 5 users.&amp;nbsp; With the current setup, that loads up 25 webapps into Tomcat.&amp;nbsp; And if one of those apps is particularly heavy, it will definitely kill the server.&lt;BR /&gt;&lt;BR /&gt;The idea you put forth above with registering which apps Tomcat should start and which ones Apache should is great.&amp;nbsp; That will definitely take a huge load off of Tomcat.&amp;nbsp; But that still doesn't quite fix the issue of lots of users in one space, each with virtualized content (if it is a Tomcat space, Apache can handle all those apps no problem [no jars to load]).&lt;BR /&gt;&lt;BR /&gt;Oh yeah, I wanted to ask about trying to setup 2 or 3 virtual servers.&amp;nbsp; If I just copy the config from one machine to another, will it work?&amp;nbsp; Or will the alfresco server freak out receiving rmi requests from more than one place?&amp;nbsp; If not, an Apache instance with a Tomcat "worker" (ajp13, workers.properties) for each server would work just fine.&amp;nbsp; I could broker off request for certain server names to different workers on different machines.&lt;BR /&gt;&lt;BR /&gt;Thanks again for the help.&amp;nbsp; I'm liking the product a lot and hopefully in a few weeks we will start our move from TeamSite.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Charlie&lt;/STRONG&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 May 2007 17:19:12 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88331#M59918</guid>
      <dc:creator>sbzoom</dc:creator>
      <dc:date>2007-05-04T17:19:12Z</dc:date>
    </item>
    <item>
      <title>Re: limit on number of web projects</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88332#M59919</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Charlie,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you go the hack route, the steps you're considering are the right ones…&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;just be sure that you handle the JMX-triggered loading/unloading properly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;But there is something else to consider here. Say I have only 5 web &lt;BR /&gt;project spaces. But for each of those spaces, I have 5 users. With the&lt;BR /&gt;current setup, that loads up 25 webapps into Tomcat. And if one of those&lt;BR /&gt;apps is particularly heavy, it will definitely kill the server.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;When it comes to handling many user-level sandboxes overlaid on top &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;of a staging area, a single tomcat-based virtualization server instance is&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;quite scalable.&amp;nbsp;&amp;nbsp; A *lot* of work went into making this posslble.&amp;nbsp; &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://connect.hyland.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Some of this is hinted at within the virt. server faq:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://wiki.alfresco.com/wiki/Virtualization_Server_FAQ#How_is_the_virtualization_server_programmatically_connected_to_the_Alfresco_webapp.3F" rel="nofollow noopener noreferrer"&gt;http://wiki.alfresco.com/wiki/Virtualization_Server_FAQ#How_is_the_virtualization_server_programmatically_connected_to_the_Alfresco_webapp.3F&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The relevant excerpt is: &lt;/SPAN&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Then, a classloader hierarchy for the virtual webapps is created that&lt;BR /&gt; parallels the overlay structure of the AVM stores containing them&lt;BR /&gt;(this is used whenever possible, to allow the virtualization server to scale).&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;Thus, even if you have a big set of very large jar files in the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;staging area of a web project, virtualizing them for many users&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;does not cost much at all, due to a combination of custom &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AVM-aware classloader logic, some tricks when it comes to&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;handling Tomcat's "work" dir for non-modifed overlayed WEB-INF&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;contents, efficient ways of testing for modified files in a subtree using&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AVMRemote, and the manner in which virtual hosts are supported&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;via valve-based reverse proxying + wildcard dns.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The key observation is that most user areas just contain modified&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;"plain" files like html, txt, jpg, etc… and possibly a few modified jsp&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;files at a time.&amp;nbsp;&amp;nbsp; A tiny subset of users will have modified jar files,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and even then, they're prone to submit them sooner or later.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Just like UNIX or Windows can share .so/.dll files amongst apps,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the virt server plays a similar trick per virtual webapp so long as&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the user has not modified their personal WEB-INF.&amp;nbsp;&amp;nbsp; Only if they&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;do that is a user-level sandbox "heavy" for the virt server. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The only real downside of this is that when someone submits contents&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from WEB-INF to staging,&amp;nbsp; the virt server does a recusive reload of&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;all virtual webapps that overlay staging once the submission is approved.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What you'll see is a momentary delay when browsing for all "client"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;virtual webapps that rely on the common staging area&amp;nbsp; (the webapp&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sends back a JMX message to the virt server to do a recursive reload&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;of classes).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My belief is that this downside is minimal when compared to the benefit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;of having a single server be able to host a huge number of virtual&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;webapps hanging off a staging area.&amp;nbsp;&amp;nbsp; Jar mods are rare, and approval&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;can be managed by workflow so that the momentary browsing outage&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;isn't that disruptive. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I should probably call more attention to the fact that we can support&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a large number of users hanging off a staging area, but the virt&amp;nbsp; server&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;faq does mention it a few times&amp;nbsp; (search for the word 'scale').&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The alfresco webapp isn't prepared to handle more than 1 virt server&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;at the moment, and doing so reliably is a bit harder than it looks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;That's why I advised against going this route. You're probably better&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;off waiting for real support there.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm very glad you like Alfresco!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; -Jon&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;"Freedom of the press is guaranteed only to those who own one."&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp; – &lt;/SPAN&gt;&lt;A href="http://en.wikipedia.org/wiki/A.J._Liebling" rel="nofollow noopener noreferrer"&gt;A. J. Liebling&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 May 2007 19:42:36 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88332#M59919</guid>
      <dc:creator>jcox</dc:creator>
      <dc:date>2007-05-04T19:42:36Z</dc:date>
    </item>
    <item>
      <title>Re: limit on number of web projects</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88333#M59920</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Jon,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for clearing up the bit about lots of users.&amp;nbsp; I was thinking/hoping that the virtual server did exactly as you described in keeping track of jars in the WEB-INF/lib/ directory.&amp;nbsp; For us, we do not even use JSP pages (since they suck and have to be re-compiled and cache a lot), we use Velocity (just like Freemarker).&amp;nbsp; So we should be spared a lot of the watching work that goes on for reloads.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I agree that having the webapp reload for all users is a small price to pay for having the system work in the way that it does (which is nice).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As for making those changes, I'll see.&amp;nbsp; I might be a lot more talk than walk.&amp;nbsp; I will most likely rely on my current practice that I use for TeamSite, which isn't "virtualization" in the strictest sense, but it works - for us.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We do this by simply mounting the virtual drive on our secondary server(s).&amp;nbsp; For Alfresco it doesn't even need to be an AVM directory.&amp;nbsp; It will be something like \\alfresco-server\alfresco\projects\mysite\.&amp;nbsp; On our standalone Tomcat machine we will have /apps/alfresco/ mapped to \\alfresco-server\alfresco\.&amp;nbsp; Then in our /tomcat/webapps/ directory, we create symlinks to the apps that we want running.&amp;nbsp; This doesn't allow a user to click on a file in Alfresco and have it show up in a browser as it should with "true" virtualization.&amp;nbsp; But, most of our links are "/somepage.htm", which doesn't actually exist.&amp;nbsp; *.htm is mapped to a Spring Controller and forwarded to a Velocity page for display.&amp;nbsp; So our web developers know to to go &lt;/SPAN&gt;&lt;A href="http://other-server/mysite/" rel="nofollow noopener noreferrer"&gt;http://other-server/mysite/&lt;/A&gt;&lt;SPAN&gt; to see any changes they have made Alfrseco:/space/mysite/.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This way, I can setup some projects in the AVM spaces and leave the rest in a document space and still have "previews" available.&amp;nbsp; That makes it easier for me to wait the 3 or so months until it is implemented correctly by Alfresco.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There is only one thing about the above that I am not sure of.&amp;nbsp; Versions.&amp;nbsp; The AVM sites have versions.&amp;nbsp; The regular "document" spaces do not.&amp;nbsp; Files are versioned, not the whole space.&amp;nbsp; So it is tough for us to do deployments based on a version when there is only one version.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I will poke around some more in the documentation and try to find a way to do versions (I could very easily have just missed it).&amp;nbsp; Thanks again for all the help and knowledge.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Charlie&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 May 2007 21:18:58 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88333#M59920</guid>
      <dc:creator>sbzoom</dc:creator>
      <dc:date>2007-05-04T21:18:58Z</dc:date>
    </item>
    <item>
      <title>Re: limit on number of web projects</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88334#M59921</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Charlie:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Awesome thread.&amp;nbsp; I'm particularly pleased that you see value in our approach to "true" virtualization; we had lots of lessons learned, and our approach at Alfresco centered around truly solving the problem of virtualizing dynamic sites.&amp;nbsp; I'd like to see you take full advantage of this!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;Also, I'd love to follow-up with you specifically on your use case integrating content from the DM repo with your website.&amp;nbsp; I am wondering if the new capabilities in 2.0.1E for using a pre-built action as a part of content rule couldn't solve this problem for you (by automatically promoting finalized, approved assets to a specific folder in one or more web projects).&amp;nbsp; Drop me a line at &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:kevinc@alfresco.com" rel="nofollow noopener noreferrer"&gt;kevinc@alfresco.com&lt;/A&gt;&lt;SPAN&gt; to chat.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Kevin&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 May 2007 14:27:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/limit-on-number-of-web-projects/m-p/88334#M59921</guid>
      <dc:creator>kvc</dc:creator>
      <dc:date>2007-05-14T14:27:45Z</dc:date>
    </item>
  </channel>
</rss>

