configuration parameters are located in three places:
- config.properties - created by the System Administrator to override parameters in a container web.xml file. This is most often used when the container is not tomcat. See below for details.
- <frevvo-home>\tomcat\conf\Catalina\localhost\frevvo.xml - recommended file to override context-parameters in the web.xml file when using the tomcat container.
- WEB-INF\web.xml - this configuration file is included in the <frevvo-home>\tomcat\webapps\frevvo.war zipfile. Modifications to this file require unzipping/rezipping the frevvo.war file after the modifications have been made. See below for the instructions. OEM partners can use this file to customize the product in many ways. See Installation Customizations for more information.
The parameters that are most commonly modified and discussed in the sections below are in frevvo.xml. The less commonly modified parameters are in web.xml. Any parameter in web.xml can be duplicated in frevvo.xml and the value in frevvo.xml takes precedence over the value in web.xml. If you plan to override the web.xml context parameter values and you are using the frevvo Tomcat bundle, we suggest doing so in frevvo.xml. This keeps all your modified parameters in one place and makes it easy to upgrade frevvo to newer releases.
A config.properties file in a deployment using tomcat seems redundant since it basically does the same thing as the frevvo.xml file. If it does exist , the configuration parameters in the config.properties file will override the frevvo.xml and web.xml files.
Modifying the frevvo.xml file.
Follow these steps to modify context parameters in the frevvo.xml file. You can also set up your database in this file as well. If you are using tomcat, making your configuration changes here, will make it easier when you upgrade to :
- Stop if it is running.
- Navigate to <frevvo-home>\tomcat\conf\catalina\localhost\frevvo.xml.
- Open the file with a text editor.
- The installation tasks listed below will reference the frevvo.xml and web.xml files when appropriate. You can configure anything in frevvo.xml that you can configure in web.xml. When you add parameters to the file, use the same syntax as the ones already there. Here is an example of a parameter to control the Maximum Size of Attachments that users can upload.
<Parameter name="frevvo.attachment.maxsize" value="10485760" override="false"/>
5. Save the file after all your changes are made. Restart .
Modifying the web.xml file
The web.xml file is included in the <frevvo-home>\tomcat\webapps\frevvo.war. The frevvo.war must be unzipped/rezipped after modifications have been made as outlined in the steps below:
- Stop if it is running.
- Unpack the frevvo.war file to a temporary location of your choice: e.g. c:\tmp\frevvo-war. Change the file extension from .war to .zip if necessary.
- Edit c:\tmp\frevvo-war\WEB-INF\web.xml.
- Make the desired configuration changes - see appropriate sections of this page for information on specific parameters. Save the changes to the web.xml file.
Rezip all the files in the c:\tmp\frevvo-war directory, even the ones you did not edit — if you change directories or zip them differently, Live Forms may not load correctly:
This is the correct structure for the frevvo.war zipfile.
Make sure you create the zipfile with the directory structure as shown in the image above. It is an easy mistake to include the containing directory in the zipfile. If you do this, Live Forms may not load correctly. Zip will often give your zipfile a .zip extension. Make sure you change this to a .war extension.
- Copy the updated frevvo.war file to <frevvo-home>tomcat\webapps.
- Restart your server.
On this page:
config.properties
The config.properties is a standard java properties file (see some examples here). All of the context-parameters currently found in web.xml or any valid context parameter can be configured in this file.
For example, say you are using the Weblogic Server and you need to set the frevvo.link.default.url to http://mycompany.com and move the Data Sources panel to the top of the designer.
- Create the config.properties file. Refer to config.properties location for information about where the file should reside. The context-parameters follow a simple context-parameter=value syntax (shown below) in the config.properties file:
frevvo.link.default.url=http://frevvo.com/ frevvo.data.sources.top=true
config.properties location
- Expand the war, edit/create the /WEB-INF/config.properties re-zip the war. This is essentially the same as editing the web.xml directly.
- Create the file in the current working directory of the container you are using. will pick it up by default. For example, <frevvo-home>/tomcat is the current working directory for the tomcat container.
Place the config.properties somewhere in the file system (outside the frevvo.war) and then add -Dfrevvo.config=Drive:/path to config.properties in the java executable call. For example, add it to <frevvo-home>\tomcat\bin\setenv.bat, setenv.sh or service.bat if you are using the tomcat container. Here is an example of the <frevvo-home>\tomcat\bin\setenv.bat file with the added parameter:
set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MaxPermSize=156m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dfrevvo.config=C:/frevvo/tomcat/config.properties
The value of frevvo.config can be a full path (e.g. Drive:/pathtomyconfig.properties), a path in the war (e.g. /WEB-INF/myconfig.properties) or a url (e.g. http://config/cluster1/myconfig.properties). Be sure to include the config.properties file name in the path statement.
Changing the admin password
- Login to your server as user "admin", password "admin".
- On the page that is displayed, click the "Manage Tenants" link.
- Click the icon to manage tenant named "d (Default tenant)"
- Click "Manage Users"
- Click the icon for the admin user. This displays a profile form.
- Change the password as desired and submit the form.
Email configuration
The forgot password functionality and form submissions sent via email both require proper configuration of ' smtp component.
- Edit <frevvo-home>\tomcat\conf\Catalina\localhost\frevvo.xml
- Configure the Mail mail/frevvoDS Resource
Here is a sample mail/frevvoDS resource configuration for Apache Tomcat 6.x:
<Resource auth="Container" factory="org.apache.naming.factory.MailSessionFactory" type="javax.mail.Session" name="mail/frevvoDS" mail.smtp.host="{your.smtp.host}" mail.smtp.port="{your.smtp.port}" mail.smtp.auth="true" mail.smtp.starttls.enable="true" mail.smtp.user="{your.smtp.user}" mail.smtp.password="{your.smtp.password}" mail.debug="false"/>
The frevvo.xml file contains a few other parameters that effect emails sent from :
<Parameter name="frevvo.mail.from.email" value="" override="false"/> <Parameter name="frevvo.mail.debug" value="false" override="false"/> <Parameter name="frevvo.mail.bounce.email" value="" override="false"/>
The from.email sets the from address in form submission and forgot password emails. debug sends more debugging info to the tomcat log files. And bounce.email sets an address to receive emails that cannot be delivered to the to email recipients.
If your SMTP server does not require a user and password for out bound emails then it may require that all emails are sent as a user with an account in your corporate domain. In this case you may have to:
- Set mail.smtp.auth="false" in the mail resource xml
- Set mail.from.email to an email address in your domain. For example:
Notice the special string & followed by lt; and gt; that are needed if you want to setup the email address with a user friendly name such as MyCompany Inc. If you do not want this then you can instead use value="no-reply@mycompany.com" or whatever email address you would like.
If your email server does not use TLS connection security, change mail.smtp.starttls.enable from true to false.
mail.smtp.starttls.enable="false"
Proxy Server configuration
If your company uses a proxy server for internet traffic please see proxy configuration. This is often the cause of the following error message:
- Unable to contact license server
- Unable to renew license. Your license will expire in <n> day(s)
External URLs
Sometimes running behind a proxy server can cause unintended changes to the form server's external URLs. The following configuration parameters address this issue.
- frevvo.forms.server.external.url - If set, all share dialogs for forms and flows will use this as the external URL.
- frevvo.internal.baseurl - If set, all URLs used internally by the form server will use this base url. This may be needed when using frevvo.forms.server.external.url if that external url is not also accessible from the form server machine.
- frevvo.internal.baseurl: http://localhost:8082
- frevvo.forms.server.external.url: http://myexternhost:8082
Default Port
By default the tomcat bundle is configured to bind to port 8082. You can change the port by:
- Edit <frevvo-home>/tomcat/conf/server.xml
- Change the Connector port
<Connector port="8082" protocol="org.apache.coyote.http11.Http11NioProtocol"
Browser Support
does not support BETA versions of browsers and there is often a delay so that we can test newly released browser versions before they are supported. In previous releases, was configured to use a list of supported browsers. An error message and a link to override the error would display if the system was accessed using an unsupported browser. Supported Browsers for Version 5.1.1 can be found here but by default this version will not warn users if they access the system using an uncertified browser. If you want your users to get a warning, you can configure a list of allowed browsers using the the frevvo.supported.browsers parameter in the web.xml or frevvo.xml (recommended) files if you are using in-house.
To do this, you will have to edit the file: <frevvo-home>\tomcat\webapps\frevvo\WEB-INF\web.xml. If you choose to make this change in web.xml, you will have to extract it from the <frevvo-home>\tomcat\webapps\frevvo.war zipfile. The steps to do this are explained here.
Once you have unzipped the frevvo.war file, please find the following context parameter: In version 5.1.1, this parameter is commented out. Be sure to uncomment the parameter using the <!-- --> comment characters. Here is what it looks like initially:
<context-param> <param-name>frevvo.supported.browsers</param-name> <param-value>*</param-value> <description>Supported browsers - array of allowed user agents</description> </context-param>
Add the user agent for the browsers you want to support '''in lower case only'''. For example, to allow Firefox 5 users to access the system, add 'firefox/5' (without the quotes) to the param-value. If you want to allow all versions of Firefox, add the string 'firefox' (without the quotes) to the param-value. It will match all versions of the Firefox browser. Microsoft's IE9 browser update 9.0.8112.16421 Update versions 9.0.3(Kb2586448) will result in an unsupported browser exception even with msie9.0 in the web.xml file. The solution is to add the string 'msie' without any version number to the support browser list.
<context-param> <param-name>frevvo.supported.browsers</param-name> <param-value>firefox/2,firefox/3,firefox/4,msie 6.0,msie 7.0,msie 8.0,msie 9.0,applewebkit,camino,httpclient,zend_http_client,formsapi</param-value> <description>Supported browsers - array of allowed user agents</description> </context-param>
Save the file. Rezip the frevvo.war file as explained here. We recommend restarting the Server if possible. Once the server is restarted, Firefox 5 will now be a supported browser in your deployment along with all the others listed in the example.
You can also configure this parameter in <frevvo-home>\tomcat\conf\Catalina\localhost\frevvo.xml - which is the recommended approach when using the tomcat container. Here is what the parameter looks like in the frevvo.xml file. In this example, only the Internet Explorer browser is allowed. Using any other browser will result in the warning message to the user.
<Parameter name="frevvo.supported.browsers" value="msie" override="false"/>
Tomcat Manager
The tomcat manager is accessible in the bundle at http://<server-name>:8082/manager/html. The default Tomcat Manager user name/password are preset to frevvo/frevvo. If you wish to change the password, you may do so by editing the file <frevvo-home>\tomcat\conf\tomcat-users.xml.
Tomcat SSL
can be configured to handle HTTPS connections from users. The tomcat bundle you downloaded from www.frevvo.com is pre-configured with a self-signed certificate for development and testing. This self-signed certificate enables to handle HTTPS connections out of the box. However before deploying your forms to production you may want to replace this with your own certificate.
The HTTPS connector on port 8443 is enabled by default. If you want to disable it, edit the <frevvo-home>/tomcat/conf/server.xml and comment out the HTTPS connector:
<!-- HTTPS Connector <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="${catalina.home}/conf/keystore" keystorePass="password" connectionTimeout="20000" maxHttpHeaderSize="32768" useBodyEncodingForURI="true" /> -->
Note that in case you want to change the default HTTPS port, you not only have to change the Tomcat connector's port above, but you also have to change the '''frevvo.port.ssl''' parameter found in </frevvo/-home>/tomcat/conf/localhost/frevvo.xml:
<Parameter name="frevvo.port.ssl" value="8443" override="false"/>
Additional info on how to use SSL on tomcat can be found on the How to solve javax.net ssl. SSLHandshakeException?
Currently you must not disable 's http port. In a future release this will be allowed. Disabling ' http port will cause your form server to malfunction as requires this port. For most cases it is sufficient to share the https version of your form/flow's Url and leave http open. However, if you want to force all form usage to be over https and feel it is not enough to simply share the https form Urls (as a user can switch to http as long as that port is open), we recommend that you deploy behind an Apache or IIS server. Close the http port on Apache or IIS but leave tomcat's http port open so that can POST back to itself when needed over http but no one outside can access it.
External Access -> Proxy (Apache/IIS...) -> frevvo (tomcat)
If you plan to run the Tomcat bundle on IBM J9 JVM and you want to have the HTTPS connector enabled, you will need to change the encryption algorithm to IBM's X509 from the default Sun X509 implementation.
To run HTTPS on IBM J9 JVM, add algorithm="IbmX509" attribute to the HTTPS connector:
<!-- HTTPS Connector --> <Connector port="8443" algorithm="IbmX509" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="${catalina.home}/conf/keystore" keystorePass="password" connectionTimeout="20000" maxHttpHeaderSize="32768" useBodyEncodingForURI="true" />
For more details, see below.
Java 7 will throw a "SEVERE: java.net.SocketException: Invalid argument: no further information" error in the <frevvo-home>/tomcat/logs/catalina.YYYY-MM-DD.log when used on a Windows 2003 system with Tomcat version 7.0.29 or earlier and the NIO http connector. If you should encounter this error, check the version of Tomcat. If it is below 7.0.30, upgrade to that version. Run the <frevvo-home>\tomcat\version.bat (Windows) or <frevvo-home>/tomcat/version.sh (UNIX) files to determine the version of Tomcat installed on your system.
Tomcat Logfiles
By default, the server writes useful logging information to a daily logging file located here: <frevvo-home>/tomcat/logs/frevvo.log. You will see the logfiles listed below in <frevvo-home>/tomcat/logs. The current date appends to the logfile name for all the files except the frevvo log:
- catalina.YYYY-MM-DD.log - this log captures the stderr and stdout of the tomcat process including startup/shutdown messages. This is usually a small file.
- frevvo.log - all messages are logged to this file.
- localhost.YYYY.MM.DD.log - this tomcat logfile should be empty.
- localhost_access_log.YYYY - MM - DD.txt - is used to log all HTTP accesses to Tomcat. It is enabled by the following entry in <frevvo-home>/tomcat/conf/server.xml. Comment out the statement below to turn off logging to this file if it is not needed.
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="${catalina.base}/logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b "%{Referer}r" "%{User-Agent}r" [%I %{JSESSIONID}c]" />
- host-manager.MM-DD-YYYY.log - this logfile is part of the tomcat distribution and is empty by default. It is a log file for the host-manager web application that is used to manage virtual hosts in tomcat. The host manager web-app is typically not needed because is preconfigured. Messages are written to this log only if the host-manager web application is being used.
- manager.MM-DD.YYYY.log - this logfile is part of the tomcat distribution and is empty by default - this is the log file for the tomcat manager web application which is used to check the status of web apps, memory usage etc. Messages are written to this log only if the manager web app is being used.
There will be three additional logfiles when running Tomcat as a Windows service:
- frevvoforms - stderr.YYYYMMDD and frevvoforms - stdout.YYYYMMDD for standard error messages and standard output stream, respectively. This is the default Tomcat behavior.
- commons-daemon.YYYY-MM-DD.log for Windows Service errors
Debugging logfile levels
The logging levels used by can be fine-tuned by editing the <frevvo -home>/tomcat/lib/logback.xml file. By default log level is set to INFO. The logging infrastructure will scan this file every 60 secs so you can live-change the log level. Here
is more configuration information . Stop to delete the logfiles. They will be recreated on start up.
You can obtain more debugging information, if needed, by following the steps below to change the loglevel. You will see the results of the changes in <frevvo-home>/tomcat/logs/frevvo.log.
- Go to <frevvo-home>/tomcat/lib
- Open the file logback.xml for editing
- Find <root level="INFO"> and change the word INFO to DEBUG. Save the file.
Loglevels are : TRACE, DEBUG, INFO, WARN, ERROR, OFF. ALL. They are case -sensitive so be sure to type them in upper case. The logging level is cummulative as shown below. Refer to this website for a description of the loglevels and some guidelines for using them.
- OFF = turns all logging off
- ERROR = ERROR
- WARN = WARN + ERROR,
- INFO = INFO + WARN + ERROR,
- DEBUG = DEBUG + INFO + WARN + ERROR,
- TRACE = DEBUG + INFO + WARN + ERROR
- ALL= turns all logging on
Configuring the logging level for catalina.log, localhost.log, host-manager.log, manager.log and local_access.log is done in <frevvo-home>/tomcat/conf/logging.properties Click here for more information.
If you are having issues running the server in an environment with proxy setups, load balancers etc. the forms.ui.filter logger can help. This logger will output additional information to the frevvo.log file to assist in determining what the frevvo servlet is seeing. To enable this logger uncomment the following line in logback.xml:
<logger name="com.forms.forms.ui.filter" level="DEBUG" />
Logfile Rotation
The tomcat bundle install will automatically rotate log files daily. The logfile is the only one affected. Let's say the current date is 6 - 19 - 2013. The current days logging is saved to the frevvo.log file located in <frevvo-home>/tomcat/logs. On the next day, 6 - 20 - 2013, the log from the previous day is copied to a logfile stamped with the previous day's date. (frevvo_2013-06-19). This date stamped frevvo.log is moved into the <frevvo-home>\tomcat\logs\old directory. Logging for 6 - 20 - 2013 is saved in the frevvo.log in <frevvo-home>/tomcat/logs.
Session Timeout
's default web browser session timeout is 480 minutes. If a user is logged into the server to design forms, or to view their task list, or is using a form and filling in values but has not yet submitted the form, the session will expire after 480 minutes of inactivity. When the session expires the designer will have to re-login to to continue designing forms and form users will have to get a new instance of the form and re-enter the values.
If the maximum number of concurrent users are logged in simultaneously, and any of them are idle for more than 480 minutes, the next person who tries to log in will be able to do so successfully.
The session timeout can be changed by editing <frevvo-home>\frevvo\tomcat\webapps\frevvo\WEB-INF\web.xml. The session timeout setting unit is minutes. For example, to change from an 480 minutes (8 hr) session timeout to a 1 hour timeout change 480 to 60.
<session-config> <session-timeout>480</session-timeout> </session-config>
The default server session timeout can be overridden for each tenant. See the Edit Tenant topic for more information.
When a session times out, for example when a person is using a form and then pauses for longer than the configured <session-timeout>, they will see the following error the next time they enter a value into the form.
The following screen displays when a user tries to submit a form from a timed out session.
Editing Submissions
Submissions can be edited via the Submissions Page. This feature is disabled by default for in-house users. To enable this feature, add the frevvo.submissions.edit.link configuration parameter to the <frevvo-home>/WEB-INF/web.xml. For more
details on the feature that this parameter controls see Editing Submissions. The web.xml file must be unzipped from the frevvo.war before it can be edited. See above for the details.
Hardware Requirements
The minimum recommended hardware configuration for your Live Forms server is:
- 2 gigahertz (GHz) 32-bit (x86) or 64-bit (x64) processor
- 4 gigabyte (GB) of system memory
- 100 GB hard drive
However you must size your hardware platform to your specific form usage characteristics. As the number of concurrent users and forms increases so must the system memory. For a medium use production server consider increasing the JVM RAM allocation to 6 or 8 gigabytes. Refer to the memory configuration topic below.
Memory Configuration
The Tomcat bundle comes pre-configured with default memory usage settings. While the defaults are sufficient for initial usage, as your forms, business logic and submissions grow, so will the memory needs of the server.
The first important step is to ensure that is installed on a machine with sufficient cpu and ram. "Sufficient" depends on your usage (number of users, number of forms in use, number of submissions per day, etc..).
After making memory configuration changes you must restart the server.
You will know when you need to increase allocated memory when you see two common errors appear in the Tomcat logfiles <frevvo-home>//tomcat/logs. You can tune the frevvo/tomcat installation by editing <frevvo-home>/tomcat/bin/setenv.bat on windows and setenv.sh on unix.
You'll see something like this in setenv.[bat,sh]:
set JAVA_OPTS=-Xms128m -Xmx512m -Djava.awt.headless=true -Dfrevvo.users.path="%CATALINA_HOME%\..\data\users"
OutOfMemoryError: Java heap space
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: Java heap space
To solve this edit setenv.[bat,sh] to increase the minimum and maximum heap size via the parameters: -Xmx and -Xms.
For example: -Xmx512m to -Xmx1g. Make sure also that the machine where is installed has enough memory installed. If you change -Xmx to 1g your machine will need more then 1g ram.
OutOfMemoryError: PermGen space
MemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space
Java has a fixed space allocated for classes and other statics that is usually enough in normal cases, but could be quickly filled up if there is on the fly code generation or significant business logic in your forms.
To solve this edit setenv.[bat,sh] increase the maximum perm size via the paramenter: -XX:MaxPermSize
For example: -XX:MaxPermSize=128M
Live Forms as a windows service
You will have to edit frevvo/tomcat/bin/service.bat line 123 to increase the Java Heap and Permgen spaces. Here is an example of the line you need to edit in that file:
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-XX:MaxPermSize=128m -Djava.io.tmpdir=%CATALINA_BASE%\temp; -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager; -Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 512
See the documentation on Tomcat Windows Service for more details.
TIFF Image Generator
Several connector wizards, such as the Email and the PaperVision/ImageSilo wizards, allow you to select the form image attached to submission emails and stored into PaperVision/ImageSilo to be in TIFF image format. If the TIFF option doesn't appear in the wizard's Send Snapshot dropdown, then you have not yet installed the necessary TIFF image generator software.
- Download the JavaTM Advanced Imaging Image I/O Tools installer for your machine platform here. Your machine must be running have the Java Runtime Environment installed. For example on a windows platform:
- Download and run jai_imageio-1_1-lib-windows-i586-jre.exe
- Download and run jai_imageio-1_1-lib-windows-i586-jre.exe
- Execute the installer on your machine. This automatically copies the libraries necessary to create TIFF images into your java installation directory.
- Restart the server.
You will now see the TIFF option in Send Snapshot dropdown. Form additional installation details and for various hardware platforms, please refer to the Java Image I/O Installation Guide.
At this time, installing this generator on a system running an installed JDK, with the JDK_Home environment variable set, will not work.
Signature Date/Time
Digital Signatures require no configuration. However you can control the format of the date stamp that appears when forms are signed. These two parameters in <frevvo-home>\tomcat\webapps\frevvo\WEB-INF\web.xml are for signature configuration. The first you should never need to change.
<context-param> <param-name>frevvo.signature.class</param-name> <param-value>com.frevvo.signature.DefaultSignature</param-value> <description>Digital signature class name</description> </context-param> <context-param> <param-name>frevvo.signature.date.format</param-name> <param-value>d MMM yyyy, z</param-value> <description>Default date format for display</description> </context-param>
Timezones
concanocolizes all form submission data to UTC. In other words no matter which timezone you are in when you submit a form with a date, date/time, or time control, the form server will convert and store those values in UTC. If your form submission data is not correctly converted and stored in UTC then you likely have to update the timezones in your installed JRE/JDK. Oracle provides a timezone update tool. Run the TZUpdater tool with the following command: java -jar tzupdate.jar -u
See Oracle's Timezone Updater Tool for full details.
Using Live Forms with reverse-proxies/SSL-accelerators
If your goal is to use behind a reverse-proxy/load-balancer/SSL-accelerator you need to add a few configuration settings to /Tomcat to make sure generate correct external urls.
When using a reverse-proxy, the external host, IP and/or port visible to browsers may be different than the host, IP and/or port seen by Tomcat. This causes a problem since will generate urls in pages and forms that are either completely invalid, which is an easy case to spot since forms will not render at all, or valid by bypassing the reverse-proxy altogether, which are harder to identify except for side effects such as forms not resizing properly, or blocked by browser security restrictions.
For cases where you have only a web-server fronting as a reverse-proxy (e.g. Apache or IIS), you can setup the web-server to communicate with Tomcat using AJP. This works since AJP provides additional metadata when communicating with Tomcat to indicate the actual remote host/ip/port instead of the web-server's host/ip/port.
However, using the AJP connector will not work for all cases. For instance, if you have a reverse-proxy/load-balancer/SSL-accelerator in front of your web-server, which is fronting /Tomcat, AJP would then report to Tomcat the host/ip/port of the reverse-proxy and not of the actual client. In these cases you have to leverage a feature provided by most reverse-proxies where they generate additional HTTP headers, like X-Forwarded-For, which contains the original client IP. can then make use of these headers to override the host, IP and/or port of the external urls it generates. This is done using the following web.xml context parameters:
- frevvo.xforwarded.protocol.header - Identifies the name of the HTTP header containing the original request's protocol (SSL accelerators, for instance, will expose https to external clients by forward to internal services using http)
- frevvo.xforwarded.host.header - Identifies the name of the HTTP header containing the original request's host
- frevvo.xforwarded.port.header - Identifies the name of the HTTP header containing the original request's port
By default, 's web.xml will contain the following values for these context parameters:
<context-param> <param-name>frevvo.xforwarded.protocol.header</param-name> <param-value>X-Forwarded-Protocol</param-value> </context-param> <context-param> <param-name>frevvo.xforwarded.host.header</param-name> <param-value>X-Forwarded-Host</param-value> </context-param> <context-param> <param-name>frevvo.xforwarded.port.header</param-name> <param-value>X-Forwarded-Port</param-value> </context-param>
You can change these parameter values to match the header names set by your reverse-proxy or change the reverse-proxy configuration to match these defaults. You can also leave any of these parameter values blank and will then use the current request's protocol, host or port, if that makes sense in your case.
As a final note, if you plan to override these context parameter values and if you are using the Tomcat bundle, we suggest doing so in frevvo/tomcat/conf/Catalina/localhost/frevvo.xml, since that would keep all your configurations in one place and makes it easy to upgrade to newer releases. You can do that by adding the following to your frevvo.xml file:
<Parameter name="frevvo.xforwarded.protocol.header" value="X-Forwarded-Protocol" override="false"/> <Parameter name="frevvo.xforwarded.host.header" value="X-Forwarded-Host" override="false"/> <Parameter name="frevvo.xforwarded.port.header" value="X-Forwarded-Port" override="false"/>
Moving users to a different tenant
This section describes how to move a user to a different tenant. In the steps below, we will move the user john from a source tenant (will use tenant d) to a target tenant (will use mytenant as the target name).
- If the target tenant does not exist, create it by following these steps. For the sake of this document, I will assume the target tenant id to be mytenant.
- Login to the target tenant as an admin and create a user with the same id as the user in the original tenant. In this example, the user id is john in the tenant mytenant.
- Transfer the applications to the new user account in the target tenant
- Login to the source tenant as a tenant admin. For instance admin@d.
- Navigate to Manage > Manage Users.
- Login as the user you want to move.
- Navigate to the user's applications page.
- Download each application for that user and save to a folder in your file system.
- Logout
- Login as the user in the new tenant: john@mytenannt.
- Upload the applications you've downloaded in the previous steps.
- Move the submissions in the submissions repository. You need to run these steps in the database where you persist the submissions. Please back up your database before moving forward.
- Login to your database.
- Edit the script shown below to:
- Replace the word johnwith the id of the user you are migrating.
- Replace the tenant id d with the id of the source tenant. The default tenant in is called d so if you are moving the user as part of an upgrade from 3.4.x chances are that your source tenant is d.
- Replace the word mytenant with the name of your target tenant
- Run the script shown below in your submissions database.
update formsubmission set tenantid='mytenant' where id in ( select fs.id from formsubmission fs, formsubmissiontype fst where fs.formsubmissiontype_formtype_id = fst.id and fst.ownerid='john' and fs.tenantid='d' )update formsubmissiontype set tenantid='mytenant' where ownerid='john' and tenantid='d'
Verification:
- Login as the user in the new tenant.
- Verify that the submissions are properly being loaded for all forms. In the submissions repository page make sure to adjust the initial and end dates to a window of time that you know have submissions for that specific form.
- Update references to the forms. After going trough the steps above, the URL to the forms owned by the user will be different than what they were originally. You need to update all references to the forms in published links and pages where the form should be embedded.
Show/Hide Tenant Login
is a multi-tenant application. See the administration section on Manage Tenants. However, it is possible that all you need is a single tenant. If this is your case it simplifies server login if you hide the tenant input on the login page.
This can be changed by editing <frevvo-home>\tomcat\webapps\frevvo\WEB-INF\web.xml. Uncomment the frevvo.default.login.tenent.id parameter and set the param-value to the name of your one tenant. Next set the param-value of frevvo.login.show.tenant to false.
Here is how the parameters appear after editing:
<context-param> <param-name>frevvo.default.login.tenant.id</param-name> <param-value>ssotest</param-value> <description>Default Tenant</description> </context-param> <context-param> <param-name>frevvo.login.show.tenant</param-name> <param-value>false</param-value> <description>Show Tenant Box on Login Page</description> </context-param>
Restart your server and the next time you login you will only need to enter your username and password.
These two config parameters can also be overridden in <frevvo-home>\tomcat\conf\Catalina\localhost\frevvo.xml. This keeps all your modified parameters in one place and makes it easy to upgrade to newer releases.
<Parameter name="frevvo.default.login.tenant.id" value="mytenant" override="false"/>
If you need to login as the ' server superuser admin you must login with username admin@d.
Show/Hide Share Dialog Options
You can customize the options that appear in the Share dialog by editing the following web.xml parameter or adding it to an override in frevvo.xml. Remove any option from <param-value> that you want to hide from the share dialog.
<context-param> <param-name>frevvo.share.options</param-name> <param-value>embed-script,embed-link,link,page,google-gadget,raw-iframe,raw-link</param-value> <description>Which share dialog options to show</description> </context-param>
Moving Data Sources to the Top of the Designer
You can make the Data Sources panel in the Designer appear at the top of the left properties pane via the context parameter: frevvo.data.sources.top. Add the parameter with a value of true, as shown below, to the <frevvo-home>\tomcat\conf\Catalina\localhost\frevvo.xml file.
<Parameter name="frevvo.data.sources.top" value="true" override="false"/>
Here is an example of how to edit the web.xml file to add the configuration parameter. Be sure to rezip the frevvo.war file, as described above, when the changes are complete.
<context-param> <param-name>frevvo.data.sources.top</param-name> <param-value>true</param-value> <description>Move Data Source to the top></description> </context-param>
Remember any parameter in web.xml can be duplicated in frevvo.xml and the value in frevvo.xml takes precedence over the value in web.xml. If you plan to override the web.xml context parameter values and you are using the frevvo Tomcat bundle, we suggest doing so in frevvo.xml.
Show/Hide the "New from XSD" Button
You can show/hide the "New from XSD" button form designer Data Sources tab via the context parameter: frevvo.data.sources.add to the <frevvo-home>\tomcat\conf\Catalina\localhost\frevvo.xml file. The default is true. Set it to false to hide "New from XSD" button. Here is an example:
<Parameter name="frevvo.data.sources.add" value="false" override="true"/>
Here is an example of the configuration parameter added to the web.xml file. Be sure to rezip the frevvo.war file, as described above, when the changes are complete.
<context-param>
<param-name>frevvo.data.sources.add</param-name>
<param-value>false</param-value>
<description>Hide New from XSD button></description>
</context-param>
Remember any parameter in web.xml can be duplicated in frevvo.xml and the value in frevvo.xml takes precedence over the value in web.xml. If you plan to override the web.xml context parameter values and you are using the frevvo Tomcat bundle, we suggest doing so in frevvo.xml.
Configure Palette Controls in the Designer
You can configure the palette to display only the controls that you need or to change the position of the controls in the palette by adding the context parameter:frevvo.palette.controls in the <frevvo-home>\tomcat\conf\Catalina\localhost\frevvo.xml file. The Strings must match exactly but they can be in any order. Remove the name of any controls that you don't want. In all cases, half of the configured amount of controls will display on the left side of the palette and the remaining controls on the right, based on the order in which they are listed in the context paramater. Here is an example showing a designer palette configured with only ten controls;
<Parameter name="frevvo.palette.controls" value="Dropdown,Radio,Checkbox,Section,Repeat,Tabs,Panel,Table,Message" override="false"/>
The frevvo.palette.controls parameter exists in the web.xml file. Here is an example of the modified configuration parameter that will display only ten controls. Be sure to unzip/rezip the frevvo.war file, as described above, when the changes are complete.
<param-name>frevvo.palette.controls</param-name>
<param-value>Dropdown,Radio,Checkbox,Section,Repeat,Tabs,Panel,Table,Message,Link</param-value>
<description>Which controls are displayed in the palette</description>
</context-param>
This image shows the Data Sources section moved to the top, the "New from XSD" button hidden and the palette configured for only ten controls. Remember any parameter in web.xml can be duplicated in frevvo.xml and the value in frevvo.xml takes precedence over the value in web.xml. If you plan to override the web.xml context parameter values and you are using the frevvo Tomcat bundle, we suggest doing so in frevvo.xml.
Modifying Content Types for the Upload Control
The content types supported by are configured through web.xml using the context parameter: frevvo.upload.file.types. A mime type that is not working for a certain content type can be added to the web.xml file for on-premise customers. Follow the steps above to unzip/rezip the <frevvo-home>/tomcat/webapps/frevvo.war file after the edits to the web.xml file are complete.
The context parameter, frevvo.upload.file.types is located in the <!-- Upload Control File Types and Corresponding Mime Types --> section of the web.xml file.
<context-param> <param-name>frevvo.upload.file.types</param-name> <param-value>pdf,MS Word,MS Excel,MS PowerPoint,MS Access,gif,jpeg,png,tiff,rtf,tar,zip,gzip,xml,bmp</param-value> <description>Upload Control File Types for restricting upload by type</description> </context-param>
In addition, there are context parameters for each supported mime type that corresponds to each context type. For example, the context param that has the mime types corresponding to MS Word is: frevvo.upload.file.type.ms_word.mimes. Note the naming convention for the context type part of the parameter - lower case and spaces replaced with _
<context-param> <param-name>frevvo.upload.file.type.ms_word.mimes</param-name> <param-value>application/msword</param-value> <description>Allowed mimes for this type (comma separated). Type names is lower cased and spaces replaced with _.</description> </context-param>
Edits to the <!-- Upload Control File Types and Corresponding Mime Types --> section of the web.xml file should be reported to customer support to ensure future releases include the added mime type in the web.xml file of future releases.
As a preferable alternative, the additional mime type can be typed into the Other Mime/Ex field on the Upload control property pane. Refer to Upload control for more information.
Rule Validation Timeout
Rule validation is executed in a thread pool with a timeout. You can change the rule validation timeout value with the context param in web.xml - "frevvo.rule.validation.timeout". The default value is 2000 milliseconds. If validation javascript execution exceeds this timeout value, the Rule Validator will show :
Form or Rule Level Validation Issue: Validation Failed Rule validation timed out, possibly due to unparseable rule JavaScript.
Max Size Attachment
You can set an upper bound limit server wide for the maximum size of an attachment that can be uploaded via the Upload Control by adding the frevvo.attachment.maxsize context parameter in the web.xml file. See Modifying the web.xml file above for the details. The same result can be accomplished by overriding the property in the container level by modifying the frevvo.xml.file. This is the recommended approach as frevvo.xml is directly editable while the web.xml file is included in the frevvo.war zipfile that has to be extracted, modified and rezipped after the changes are made. To do that:
- Stop .
- Locate the frevvo.xml file under the frevvo installation. If you are using the tomcat bundle, it will be in <frevvo-home>\tomcat\conf\catalina\localhost.
- Add the line:
<Parameter name="frevvo.attachment.maxsize" value="10485760" override="false"/>
3. Replace the value,102400 in this example, with the maximum size of the attachment that you want. The value must be entered in bytes. The default value is 10485760 bytes.
4. Restart .
IBM J9 JVM
supports IBM's J9 JVM. To use the J9 JVM add the '''algorithm="IbmX509" attribute to the frevvo/tomcat/conf/server.xml's HTTPS <Connector> element. So, instead of this:
<!-- HTTPS Connector : add algorithm="IbmX509" when using IBM's J9 JVM --> <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="${catalina.home}/conf/keystore" keystorePass="password" connectionTimeout="20000" maxHttpHeaderSize="32768" useBodyEncodingForURI="true" />
You need this:
<!-- HTTPS Connector : add algorithm="IbmX509" when using IBM's J9 JVM --> <Connector port="8443" algorithm="IbmX509" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="${catalina.home}/conf/keystore" keystorePass="password" connectionTimeout="20000" maxHttpHeaderSize="32768" useBodyEncodingForURI="true" />
Or, of course, comment out the HTTPS connector altogether if it is not needed.
Also, to parse license files, the BountyCastle JCE provider should be downloaded and placed in the web container classpath. For the Tomcat servlet, copy the jar into the tomcat/lib folder. Once this jar is there, the provider will be picked up automatically by through the context parameter in web.xml: frevvo.security.provider shown below. This parameter defaults to org.bouncycastle.jce.provider.BouncyCastleProvider. It is ignored when the jar is not present.
Here is a link to the Bounty Castle download page. The jar that needs to be downloaded is the JDK 1.5 - JDK 1.7 provider: bcprov-jdk15on-148.jar. You can download it from here.
<!-- JSSE Provider --> <context-param> <param-name>frevvo.security.provider</param-name> <param-value>org.bouncycastle.jce.provider.BouncyCastleProvider</param-value> <description> Set the Class name or JCE provider name to use when parsing license files. If the class doesnt exist in the ClassPath, it will be ignored. This setting is needed when running frevvo on IBM J9 JVM: just add Bounty Castle JCE provider to the classpath and restart the server. </description> </context-param>
OEM Branding
There are several installation and configuration tasks and consideration that are typically done only by OEM partners embedding into there own product. Please see Installation Customizations for more details.
Clustered Form Servers
supports clustered form servers for both high availablity / load balancing and fault tolerance. Please refer to Cluster Configuration for requirements and tasks associated with installation and configuration of clustered form servers.