|
From: Charles <cpr...@go...> - 2011-09-09 00:50:52
|
copy wrapper.dll to %JBOSS_HOME%\lib and set wrapper.java.library.path.1=%JBOSS_HOME%\lib in the conf file in %JBOSS_HOME%\conf On Fri, Sep 9, 2011 at 2:48 AM, Charles <cpr...@go...> wrote: > copy wrapper.dll to > > %JBOSS_HOME%\lib > > and set > > wrapper.java.library.path.1=%JBOSS_HOME%\lib > > in the conf file in %JBOSS_HOME%\conf > > > On Thu, Sep 8, 2011 at 6:34 PM, qt4x11 <qt...@gm...> wrote: > >> Thanks, I've been following your advice and used method 4. I believe I'm >> pretty close to making it work. Right now I'm receiving the error message >> >> INFO | jvm 1 | 2011/09/08 08:17:41 | WrapperManager Debug: Unable >> to load native library: wrapper-windows-x86-32.dll Cause: no >> wrapper-windows-x86-32 in java.library.path >> >> It seems like wrapper is not able to load the native library? I'm not >> sure why this is - I've made sure that java.library.path config option >> points to the location of a valid wrapper.dll file. I'm attaching my >> current conf file and recent logs, if you can take a look >> >> >> On Wed, Sep 7, 2011 at 8:38 PM, Christian Mueller < >> chr...@ta...> wrote: >> >>> Hi, >>> >>> JBoss AS7 has changed in several ways how it is launching. >>> >>> You are using Integration method 1, however it seems that you are >>> passing in a jar file as the first parameter to >>> org.tanukisoftware.wrapper.WrapperSimpleApp. WrapperSimpleApp expects >>> the name of your main class as parameter. So you should go for >>> integration method 4 and pass the jar file to >>> org.tanukisoftware.wrapper.WrapperJarApp. >>> >>> We have had some guys recently with the same questions and helped them >>> resolving the problem: >>> >>> https://issues.jboss.org/browse/AS7-1547 >>> >>> Hope this information helps you out. >>> >>> Please let me know if you have any further questions. >>> >>> Thank you, >>> Christian >>> >>> PS: I also replied with above answer to your question on stackoverflow as >>> well. >>> >>> On Thu, Sep 8, 2011 at 12:41 AM, qt4x11 <qt...@gm...> wrote: >>> > I'm trying to use jsw 3.3.5 32 bit with JBoss AS7 on a Windows 7 64 bit >>> > machine. I have a hunch the reason I'm having problems is due our 32 >>> bit >>> > version, but we have been able to use the 32 bit version of jsw with >>> other >>> > applications (ActiveMQ) successfully, so I thought I'd try the 32 bit >>> > version first. If it's advisable to upgrade to the pro version we will >>> do >>> > so. >>> > I'm pasting my wrapper.log and wrapper.conf below. Right now the >>> service is >>> > not able to start normally. I tried troubleshooting the >>> > UnsatisfiedLinkError: no wrapper-windows-x86-32 in java.library.path >>> error >>> > by making sure jsw was finding my java.library.path by hard coding >>> paths for >>> > JAVA_HOME and JBOSS_HOME in my conf. The second error seems unusual to >>> me, >>> > as D:\jboss-as-7.0.0.Final/jboss-module.jar definitely exists on the >>> file >>> > system. >>> > STATUS | wrapper | 2011/09/07 08:01:33 | --> Wrapper Started as >>> Console >>> > DEBUG | wrapper | 2011/09/07 08:01:33 | Using tick timer. >>> > DEBUG | wrapperp | 2011/09/07 08:01:33 | server listening on port >>> 32001. >>> > STATUS | wrapper | 2011/09/07 08:01:33 | Launching a JVM... >>> > INFO | wrapper | 2011/09/07 08:01:33 | command: "C:\Program >>> > Files\Java\jdk1.6.0_16\bin\java" -XX:MaxPermSize=256m >>> > -Dorg.jboss.resolver.warning=true >>> -Dsun.rmi.dgc.client.gcInterval=3600000 >>> > -Dsun.rmi.dgc.server.gcInterval=3600000 >>> > -Djboss.modules.system.pkgs=org.jboss.byteman >>> > -Dorg.tanukisoftware.wrapper.WrapperManager.mbean=false >>> > >>> -Dlogging.configuration=file:D:\jboss-as-7.0.0.Final/standalone/configuration/logging.properties >>> > -Djava.library.path="D:\jboss-as-7.0.0.Final/lib" -classpath >>> > "D:\jboss-as-7.0.0.Final/lib/wrapper.jar;C:\Program >>> > >>> Files\Java\jdk1.6.0_16/lib/tools.jar;D:\jboss-as-7.0.0.Final/bin/run.jar;D:\jboss-as-7.0.0.Final/jboss-modules.jar" >>> > -Dwrapper.key="ExYkelyCNrKjXXAf" -Dwrapper.port=32001 >>> > -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 >>> > -Dwrapper.debug="TRUE" -Dwrapper.pid=3200 -Dwrapper.version="3.2.3" >>> > -Dwrapper.native_library="wrapper" -Dwrapper.cpu.timeout="10" >>> > -Dwrapper.jvmid=1 org.tanukisoftware.wrapper.WrapperSimpleApp >>> > D:\jboss-as-7.0.0.Final/jboss-modules.jar >>> D:\jboss-as-7.0.0.Final\modules >>> > org.jboss.logmanager org.jboss.as.standalone >>> > DEBUG | wrapper | 2011/09/07 08:01:33 | JVM started (PID=3336) >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | WrapperManager class >>> initialized >>> > by thread: main Using classloader: >>> sun.misc.Launcher$AppClassLoader@11b86e7 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Wrapper (Version 3.2.3) >>> > http://wrapper.tanukisoftware.org >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Copyright 1999-2006 Tanuki >>> > Software, Inc. All Rights Reserved. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Wrapper Manager: JVM #1 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Running a 32-bit JVM. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Wrapper Manager: Registering >>> > shutdown hook >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Wrapper Manager: Using >>> wrapper >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Load native library. One or >>> more >>> > attempts may fail if platform specific libraries do not exist. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Loading native library >>> failed: >>> > wrapper-windows-x86-32.dll Cause: java.lang.UnsatisfiedLinkError: no >>> > wrapper-windows-x86-32 in java.library.path >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Loaded native library: >>> wrapper.dll >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Calling native initialization >>> > method. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Initializing WrapperManager >>> native >>> > library. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Java Executable: C:\Program >>> > Files\Java\jdk1.6.0_16\bin\java.exe >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Windows version: 5.2.3790 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Java Version : 1.6.0_16-b01 >>> Java >>> > HotSpot(TM) Client VM >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Java VM Vendor : Sun >>> Microsystems >>> > Inc. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | WrapperSimpleApp: Unable to >>> locate >>> > the class D:\jboss-as-7.0.0.Final/jboss-modules.jar: >>> > java.lang.ClassNotFoundException: >>> D:\jboss-as-7.0.0.Final/jboss-modules.jar >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | WrapperSimpleApp Usage: >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | java >>> > org.tanukisoftware.wrapper.WrapperSimpleApp {app_class} [app_arguments] >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Where: >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | app_class: The fully >>> > qualified class name of the application to run. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | app_arguments: The >>> arguments >>> > that would normally be passed to the >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | >>> application. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | WrapperManager.stop(1) called >>> by >>> > thread: main >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Control event monitor thread >>> > started. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Startup runner thread >>> started. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Communications runner thread >>> > started. >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Open socket to >>> > wrapper...Wrapper-Connection >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Failed attempt to bind using >>> local >>> > port 31000 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Failed attempt to bind using >>> local >>> > port 31001 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Failed attempt to bind using >>> local >>> > port 31002 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Failed attempt to bind using >>> local >>> > port 31003 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Opened Socket from 31004 to >>> 32001 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Send a packet KEY : >>> > ExYkelyCNrKjXXAf >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | >>> > handleSocket(Socket[addr=/127.0.0.1,port=32001,localport=31004]) >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Send a packet STOP : 1 >>> > DEBUG | wrapperp | 2011/09/07 08:01:33 | accepted a socket from >>> 127.0.0.1 >>> > on port 31004 >>> > DEBUG | wrapperp | 2011/09/07 08:01:33 | read a packet KEY : >>> > ExYkelyCNrKjXXAf >>> > DEBUG | wrapper | 2011/09/07 08:01:33 | Got key from JVM: >>> ExYkelyCNrKjXXAf >>> > DEBUG | wrapperp | 2011/09/07 08:01:33 | send a packet LOW_LOG_LEVEL : >>> 1 >>> > DEBUG | wrapperp | 2011/09/07 08:01:33 | send a packet PING_TIMEOUT : >>> 30 >>> > DEBUG | wrapperp | 2011/09/07 08:01:33 | send a packet PROPERTIES : >>> > (Property Values) >>> > DEBUG | wrapperp | 2011/09/07 08:01:33 | read a packet STOP : 1 >>> > DEBUG | wrapper | 2011/09/07 08:01:33 | JVM requested a shutdown. (1) >>> > DEBUG | wrapper | 2011/09/07 08:01:33 | wrapperStopProcess(1) called. >>> > DEBUG | wrapper | 2011/09/07 08:01:33 | Sending stop signal to JVM >>> > DEBUG | wrapperp | 2011/09/07 08:01:33 | send a packet STOP : NULL >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Received a packet >>> LOW_LOG_LEVEL : >>> > 1 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Wrapper Manager: LowLogLevel >>> from >>> > Wrapper is 1 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Received a packet >>> PING_TIMEOUT : >>> > 30 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | PingTimeout from Wrapper is >>> 30000 >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Received a packet PROPERTIES >>> : >>> > (Property Values) >>> > INFO | jvm 1 | 2011/09/07 08:01:33 | Received a packet STOP : >>> > INFO | jvm 1 | 2011/09/07 08:01:34 | Thread, main, handling the >>> > shutdown process. >>> > INFO | jvm 1 | 2011/09/07 08:01:34 | shutdownJVM(1) Thread:main >>> > INFO | jvm 1 | 2011/09/07 08:01:34 | Send a packet STOPPED : 1 >>> > DEBUG | wrapperp | 2011/09/07 08:01:34 | read a packet STOPPED : 1 >>> > DEBUG | wrapper | 2011/09/07 08:01:34 | JVM signalled that it was >>> stopped. >>> > INFO | jvm 1 | 2011/09/07 08:01:34 | Closing socket. >>> > INFO | jvm 1 | 2011/09/07 08:01:34 | Closed socket: >>> > java.net.SocketException: socket closed >>> > DEBUG | wrapperp | 2011/09/07 08:01:34 | socket read no code >>> (closed?). >>> > DEBUG | wrapperp | 2011/09/07 08:01:35 | server listening on port >>> 32002. >>> > INFO | jvm 1 | 2011/09/07 08:01:35 | Server daemon shut down >>> > INFO | jvm 1 | 2011/09/07 08:01:35 | calling System.exit(1) >>> > DEBUG | wrapper | 2011/09/07 08:01:35 | JVM process exited with a >>> code of >>> > 1, however the wrapper exit code was already 1. >>> > DEBUG | wrapper | 2011/09/07 08:01:35 | JVM exited normally. >>> > STATUS | wrapper | 2011/09/07 08:01:35 | <-- Wrapper Stopped >>> > My wrapper.conf is below >>> > #encoding=UTF-8 >>> > # Configuration files must begin with a line specifying the encoding >>> > # of the the file. >>> > #******************************************************************** >>> > # Wrapper License Properties (Ignored by Community Edition) >>> > #******************************************************************** >>> > # Professional and Standard Editions of the Wrapper require a valid >>> > # License Key to start. Licenses can be purchased or a trial license >>> > # requested on the following pages: >>> > # http://wrapper.tanukisoftware.com/purchase >>> > # http://wrapper.tanukisoftware.com/trial >>> > # Include file problems can be debugged by removing the first '#' >>> > # from the following line: >>> > ##include.debug >>> > # The Wrapper will look for either of the following optional files for >>> a >>> > # valid License Key. License Key properties can optionally be >>> included >>> > # directly in this configuration file. >>> > #include ../conf/wrapper-license.conf >>> > #include ../conf/wrapper-license-%WRAPPER_HOST_NAME%.conf >>> > # The following property will output information about which License >>> Key(s) >>> > # are being found, and can aid in resolving any licensing problems. >>> > #wrapper.license.debug=TRUE >>> > #******************************************************************** >>> > # Wrapper Localization >>> > #******************************************************************** >>> > # Specify the locale which the Wrapper should use. By default the >>> system >>> > # locale is used. >>> > #wrapper.lang=en_US # en_US or ja_JP >>> > # Specify the location of the Wrapper's language resources. If these >>> are >>> > # missing, the Wrapper will default to the en_US locale. >>> > wrapper.lang.folder=../lang >>> > #******************************************************************** >>> > # Wrapper Java Properties >>> > #******************************************************************** >>> > # Java Application >>> > # Locate the java binary on the system PATH: >>> > #wrapper.java.command=java >>> > # Specify a specific java binary: >>> > set.JBOSS_HOME=D:\jboss-as-7.0.0.Final >>> > set.JAVA_HOME=C:\Program Files\Java\jdk1.6.0_16 >>> > wrapper.java.command=%JAVA_HOME%/bin/java >>> > # Tell the Wrapper to log the full generated Java command line. >>> > wrapper.java.command.loglevel=INFO >>> > # Java Main class. This class must implement the WrapperListener >>> interface >>> > # or guarantee that the WrapperManager class is initialized. Helper >>> > # classes are provided to do this for you. See the Integration >>> section >>> > # of the documentation for details. >>> > wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp >>> > # Java Classpath (include wrapper.jar) Add class path elements as >>> > # needed starting from 1 >>> > wrapper.java.classpath.1=%JBOSS_HOME%/lib/wrapper.jar >>> > wrapper.java.classpath.2=%JAVA_HOME%/lib/tools.jar >>> > wrapper.java.classpath.3=%JBOSS_HOME%/bin/run.jar >>> > wrapper.java.classpath.4=%JBOSS_HOME%/jboss-modules.jar >>> > # Java Library Path (location of Wrapper.DLL or libwrapper.so) >>> > wrapper.java.library.path.1=%JBOSS_HOME%/lib >>> > # Java Bits. On applicable platforms, tells the JVM to run in 32 or >>> 64-bit >>> > mode. >>> > wrapper.java.additional.auto_bits=TRUE >>> > # Java Additional Parameters >>> > #wrapper.java.additional.1=-server >>> > wrapper.java.additional.1=-XX:MaxPermSize=256m >>> > wrapper.java.additional.2=-Dorg.jboss.resolver.warning=true >>> > wrapper.java.additional.3=-Dsun.rmi.dgc.client.gcInterval=3600000 >>> > wrapper.java.additional.4=-Dsun.rmi.dgc.server.gcInterval=3600000 >>> > wrapper.java.additional.5=-Djboss.modules.system.pkgs=org.jboss.byteman >>> > >>> wrapper.java.additional.6=-Dorg.tanukisoftware.wrapper.WrapperManager.mbean=false >>> > >>> wrapper.java.additional.7=-Dlogging.configuration=file:%JBOSS_HOME%/standalone/configuration/logging.properties >>> > # Initial Java Heap Size (in MB) >>> > #wrapper.java.initmemory=128 >>> > # Maximum Java Heap Size (in MB) >>> > #wrapper.java.maxmemory=512 >>> > # Application parameters. Add parameters as needed starting from 1 >>> > wrapper.app.parameter.1=%JBOSS_HOME%/jboss-modules.jar >>> > wrapper.app.parameter.2=-mp >>> > wrapper.app.parameter.2=%JBOSS_HOME%\modules >>> > wrapper.app.parameter.3=-logmodule >>> > wrapper.app.parameter.3=org.jboss.logmanager >>> > wrapper.app.parameter.4=-jaxpmodule >>> > wrapper.app.parameter.4=javax.xml.jaxp-provider >>> > wrapper.app.parameter.4=org.jboss.as.standalone >>> > wrapper.app.parameter.9=-Djboss.home.dir=%JBOSS_HOME% >>> > >>> > #******************************************************************** >>> > # Wrapper Logging Properties >>> > #******************************************************************** >>> > # Enables Debug output from the Wrapper. >>> > wrapper.debug=TRUE >>> > # Format of output for the console. (See docs for formats) >>> > wrapper.console.format=PM >>> > # Log Level for console output. (See docs for log levels) >>> > wrapper.console.loglevel=INFO >>> > # Log file to use for wrapper output logging. >>> > wrapper.logfile=../standalone/log/wrapper.log >>> > # Format of output for the log file. (See docs for formats) >>> > wrapper.logfile.format=LPTM >>> > # Log Level for log file output. (See docs for log levels) >>> > wrapper.logfile.loglevel=INFO >>> > # Maximum size that the log file will be allowed to grow to before >>> > # the log is rolled. Size is specified in bytes. The default value >>> > # of 0, disables log rolling. May abbreviate with the 'k' (kb) or >>> > # 'm' (mb) suffix. For example: 10m = 10 megabytes. >>> > wrapper.logfile.maxsize=0 >>> > # Maximum number of rolled log files which will be allowed before old >>> > # files are deleted. The default value of 0 implies no limit. >>> > wrapper.logfile.maxfiles=0 >>> > # Log Level for sys/event log output. (See docs for log levels) >>> > wrapper.syslog.loglevel=NONE >>> > #******************************************************************** >>> > # Wrapper General Properties >>> > #******************************************************************** >>> > # Allow for the use of non-contiguous numbered properties >>> > #wrapper.ignore_sequence_gaps=TRUE >>> > # Title to use when running as a console >>> > #wra...@ap...@ >>> > #******************************************************************** >>> > # Wrapper JVM Checks >>> > #******************************************************************** >>> > # Detect DeadLocked Threads in the JVM. (Requires Standard Edition) >>> > #wrapper.check.deadlock=TRUE >>> > #wrapper.check.deadlock.interval=60 >>> > #wrapper.check.deadlock.action=RESTART >>> > #wrapper.check.deadlock.output=FULL >>> > # Out Of Memory detection. >>> > # (Simple match) >>> > #wrapper.filter.trigger.1000=java.lang.OutOfMemoryError >>> > # (Only match text in stack traces if -XX:+PrintClassHistogram is being >>> > used.) >>> > #wrapper.filter.trigger.1000=Exception in thread "*" >>> > java.lang.OutOfMemoryError >>> > #wrapper.filter.allow_wildcards.1000=TRUE >>> > #wrapper.filter.action.1000=RESTART >>> > #wrapper.filter.message.1000=The JVM has run out of memory. >>> > #******************************************************************** >>> > # Wrapper Email Notifications. (Requires Professional Edition) >>> > #******************************************************************** >>> > # Common Event Email settings. >>> > #wrapper.event.default.email.debug=TRUE >>> > #wrapper.event.default.email.smtp.host=<SMTP_Host> >>> > #wrapper.event.default.email.smtp.port=25 >>> > >>> #wrapper.event.default.email.subject=[%WRAPPER_HOSTNAME%:%WRAPPER_NAME%:%WRAPPER_EVENT_NAME%] >>> > Event Notification >>> > #wrapper.event.default.email.sender=<Sender email> >>> > #wrapper.event.default.email.recipient=<Recipient email> >>> > # Configure the log attached to event emails. >>> > #wrapper.event.default.email.attach_log=TRUE >>> > #wrapper.event.default.email.maillog.lines=50 >>> > #wrapper.event.default.email.maillog.format=LPTM >>> > #wrapper.event.default.email.maillog.loglevel=INFO >>> > # Enable specific event emails. >>> > #wrapper.event.wrapper_start.email=TRUE >>> > #wrapper.event.jvm_prelaunch.email=TRUE >>> > #wrapper.event.jvm_start.email=TRUE >>> > #wrapper.event.jvm_started.email=TRUE >>> > #wrapper.event.jvm_deadlock.email=TRUE >>> > #wrapper.event.jvm_stop.email=TRUE >>> > #wrapper.event.jvm_stopped.email=TRUE >>> > #wrapper.event.jvm_restart.email=TRUE >>> > #wrapper.event.jvm_failed_invocation.email=TRUE >>> > #wrapper.event.jvm_max_failed_invocations.email=TRUE >>> > #wrapper.event.jvm_kill.email=TRUE >>> > #wrapper.event.jvm_killed.email=TRUE >>> > #wrapper.event.jvm_unexpected_exit.email=TRUE >>> > #wrapper.event.wrapper_stop.email=TRUE >>> > # Specify custom mail content >>> > #wrapper.event.jvm_restart.email.body=The JVM was restarted.\n\nPlease >>> check >>> > on its status.\n >>> > Anyone know what's going on? Do these errors have to do with my 32 bit >>> > version? If we need to upgrade to pro we'll do so. Thanks! >>> > >>> > >>> ------------------------------------------------------------------------------ >>> > Using storage to extend the benefits of virtualization and iSCSI >>> > Virtualization increases hardware utilization and delivers a new level >>> of >>> > agility. Learn what those decisions are and how to modernize your >>> storage >>> > and backup environments for virtualization. >>> > http://www.accelacomm.com/jaw/sfnl/114/51434361/ >>> > _______________________________________________ >>> > Wrapper-user mailing list >>> > Wra...@li... >>> > https://lists.sourceforge.net/lists/listinfo/wrapper-user >>> > >>> > >>> >>> >>> ------------------------------------------------------------------------------ >>> Doing More with Less: The Next Generation Virtual Desktop >>> What are the key obstacles that have prevented many mid-market businesses >>> from deploying virtual desktops? How do next-generation virtual >>> desktops >>> provide companies an easier-to-deploy, easier-to-manage and more >>> affordable >>> virtual desktop model.http://www.accelacomm.com/jaw/sfnl/114/51426474/ >>> _______________________________________________ >>> Wrapper-user mailing list >>> Wra...@li... >>> https://lists.sourceforge.net/lists/listinfo/wrapper-user >>> >> >> >> >> ------------------------------------------------------------------------------ >> Doing More with Less: The Next Generation Virtual Desktop >> What are the key obstacles that have prevented many mid-market businesses >> from deploying virtual desktops? How do next-generation virtual desktops >> provide companies an easier-to-deploy, easier-to-manage and more >> affordable >> virtual desktop model.http://www.accelacomm.com/jaw/sfnl/114/51426474/ >> _______________________________________________ >> Wrapper-user mailing list >> Wra...@li... >> https://lists.sourceforge.net/lists/listinfo/wrapper-user >> >> > |