I'm upgrading appian from 18.3 to 19.1 and have made all required changes however when i try to start the appserver it creates a new folder in the default appian log directory called "tomcat" but there are no logs in that folder. Previous release did have tomcat-stdout.log file that contained logs for the tomcat server has any one else run into this issue?
Discussion posts and replies are publicly visible
So i was able to resolve this with some help from appian. The issue currently is on Windows installation i have not tested this on Linux. As per Appian documentation jdk is now built into appian which is great but with that a few more environment variables needs to be defined. 1. JAVA_HOME this need to be <APPIAN_HOME>\java 2. JRE_HOME this need to be <APPIAN_HOME>\java\jre 3. CATALINA_HOME this needs to be <APPIAN_HOME>\tomcat\apache-tomcat 4. In the path variables add %CATALINA_HOME%\lib If step 2 -4 are not carried out appian installation will run without any errors but appserver wont start and neither will tomcat as startup.bat is looking for Catalina_home environment variable. Starting 19.1 is different. After executing <APPIAN_HOME>\tomcat\apache-tomcat\bin\start-appserver.bat you also need to execute <APPIAN_HOME>\tomcat\apache-tomcat\bin\startup.bat ( thanks appian for pointing this) this will execute the tomcat and catalina process. While tomcat is running look for error " SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Error deploying configuration descriptor [C:\appian191\appian\tomcat\apache-tomcat\conf\Catalina\localhost\suite.xml]java.io.FileNotFoundException: ..\..\..\conf\tomcatResources.xml (The system cannot find the path specified)" or "Failed to start component [/suite]" this is due to suite.xml having incomplete information. Suite.XML can be found in <APPIAN_HOME>\tomcat\apache-tomcat\conf\Catalina\localhost\ . Here's what my initial suite.xml looked like <!DOCTYPE config-xml [ <!ENTITY datasource-config SYSTEM "file:../../../conf/tomcatResources.xml"> ]> <Context docBase="${ae.home}/deployment/web.war" mapperDirectoryRedirectEnabled="true" swallowOutput="true"> <Loader loaderClass="com.appiancorp.tomcat.loader.AppianWebappClassLoader"/> <JarScanner> <JarScanFilter pluggabilitySkip="*" tldSkip="*" tldScan="${tomcat.util.scan.StandardJarScanFilter.jarsToScan}, string-*.jar, kcServlet-*.jar, taglibs-standard-impl-*.jar, regexp-*.jar, taglibs-standard-jstlel-*.jar, sitemesh-*.jar, jersey-server-*.jar, pluto-taglib-*.jar, i18n-*.jar, datetime-*.jar, struts-el-*.jar, struts-taglib-*.jar, struts-tiles-*.jar" /> </JarScanner> <!-- Imported datasources from AE_HOME/conf/tomcatResources.xml --> &datasource-config; <!-- In order to start a local broker the property conf.jms.embeddedBrokerEnabled must be set to true in custom.properties --> <Resource name="jms/AppianProcessIntegrationConnectionFactory" type="org.apache.activemq.ActiveMQConnectionFactory" auth="Container" description="Appian Process Integration JMS Connection Factory" factory="org.apache.activemq.jndi.JNDIReferenceFactory" brokerURL="tcp://localhost:61616" useEmbeddedBroker="true" brokerName="AppianActiveMQBroker"/> <Resource name="jms/AppianProcessIntegrationQueue" type="org.apache.activemq.command.ActiveMQQueue" factory="org.apache.activemq.jndi.JNDIReferenceFactory" physicalName="APPIAN.PROCESS.INTEGRATION.QUEUE" auth="Container"/> <Resources cachingAllowed="false"> <PostResources base="${ae.home}/deployment/web.war/WEB-INF/resources" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/WEB-INF/classes" /> <PostResources base="${ae.home}/conf" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/WEB-INF/classes" /> </Resources> <Manager pathname="" /> <!-- BEGIN ACCESSLOG --> <Valve className="org.apache.catalina.valves.ExtendedAccessLogValve" directory="${ae.home}/logs" prefix="tomcat-access.log" pattern="date time cs-uri x-P($bgUrl) sc-status time-taken" conditionUnless="no-access-log" /> <!-- END ACCESSLOG --> </Context> My Modified suite.xml has datasource values: <Context docBase="${ae.home}/deployment/web.war" mapperDirectoryRedirectEnabled="true" swallowOutput="true"> <Loader loaderClass="com.appiancorp.tomcat.loader.AppianWebappClassLoader"/> <JarScanner> <JarScanFilter pluggabilitySkip="*" tldSkip="*" tldScan="${tomcat.util.scan.StandardJarScanFilter.jarsToScan}, string-*.jar, kcServlet-*.jar, taglibs-standard-impl-*.jar, regexp-*.jar, taglibs-standard-jstlel-*.jar, sitemesh-*.jar, jersey-server-*.jar, pluto-taglib-*.jar, i18n-*.jar, datetime-*.jar, struts-el-*.jar, struts-taglib-*.jar, struts-tiles-*.jar" /> </JarScanner> <!-- BEGIN DATASOURCES --> <Resource name="jdbc/AppianDS" factory="com.appiancorp.tomcat.datasource.EncodedPasswordDataSourceFactory" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/appian_schema?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=utf8" username="xxxx" password="xxxxxx" initialSize="5" maxTotal="100" defaultTransactionIsolation="READ_COMMITTED" maxWaitMillis="30000" minIdle="5" minEvictableIdleTimeMillis="90000" timeBetweenEvictionRunsMillis="450000" numTestsPerEvictionRun="100" accessToUnderlyingConnectionAllowed="true" validationQuery="SELECT 1" testOnBorrow="true" /> <!-- END DATASOURCES --> <!-- In order to start a local broker the property conf.jms.embeddedBrokerEnabled must be set to true in custom.properties --> <Resource name="jms/AppianProcessIntegrationConnectionFactory" type="org.apache.activemq.ActiveMQConnectionFactory" auth="Container" description="Appian Process Integration JMS Connection Factory" factory="org.apache.activemq.jndi.JNDIReferenceFactory" brokerURL="tcp://localhost:61616" useEmbeddedBroker="true" brokerName="AppianActiveMQBroker"/> <Resource name="jms/AppianProcessIntegrationQueue" type="org.apache.activemq.command.ActiveMQQueue" factory="org.apache.activemq.jndi.JNDIReferenceFactory" physicalName="APPIAN.PROCESS.INTEGRATION.QUEUE" auth="Container"/> <Resources cachingAllowed="false"> <PostResources base="${ae.home}/deployment/web.war/WEB-INF/resources" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/WEB-INF/classes" /> <PostResources base="${ae.home}/conf" className="org.apache.catalina.webresources.DirResourceSet" webAppMount="/WEB-INF/classes" /> </Resources> <Manager pathname="" /> <!-- BEGIN ACCESSLOG --> <Valve className="org.apache.catalina.valves.ExtendedAccessLogValve" directory="${ae.home}/logs" prefix="tomcat-access.log" pattern="date time cs-uri x-P($bgUrl) sc-status time-taken" /> <!-- END ACCESSLOG --> </Context> Restarted the appian start process and it worked. This has only been seen on Appian Windows installation havent tested it on Linux yet.
Hi Ankur, Thanks for sharing this helpful information.I am facing another error while starting the app server when I check the log file the error stated as
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
I have given root access to the uses in MySQL users but the error still remains, can you kindly tell me if you know how to solve this error?
Waiting for a response,
Thank you
Can you connect to the DB from workbench using the credentials you have set? If it works then check the suite.xml in APPIAN_HOME>\tomcat\apache-tomcat\conf\Catalina\localhost\ and validate if the password matches in the below codeBEGIN DATASOURCES --> <Resource name="jdbc/AppianDS" factory="com.appiancorp.tomcat.datasource.EncodedPasswordDataSourceFactory" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/appian_schema?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=utf8" username="xxxx" password="xxxxxx"
Hi Ankur,
Thank you for the reply,
I have provided the correct username and password in suite.xml file which I am using in the workbench to access the database, but I am still getting the same error.
can you kindly tell me which version of java connector are you using
Hope so you are doing fine, thank you for your reply.
I have placed the following connector jars in the (repo\appian\tomcat\apache-tomcat\lib)
mysql-connector-java-5.1.47
mysql-connector-java-5.1.47-bin
mysql-connector-java-8.0.11
mysql-connector-java-8.0.16
------------------------------------
I am trying to install appian server but having difficulty with configuring the MySql connection can you kindly tell me what is JNDI? what do I need to put in .xml file
e.g:
for tomcat.resource.xml
what should be the name? here (<Resource name="jdbc/") what should be after jdbc/ should it be the schema name? e.g appian_schema I created in MySql server -> (<Resource name="jdbc/appian_schema") or it should be something else?
-------------------------------------------------------------
what should be in url after port/
is this the correct url? if I my sql servr is on local machine and the schema is appian_schema
url="jdbc:mysql://localhost:3306/appian_schema?useOldAliasMetadataBehavior=true&useServerPrepStmts=true"
---------------------------------------
and for custom.properties.dev file, should the data source look like this?
conf.data.datasources=appian_schema
I am new to appian and need to set a an appian server on my local machine, I am setting up server for first time, kindly help me out.
Any help would be really appreciated
Looks like you are installing appian and all components on a single server i would suggest you follow the steps mentioned here https://docs.appian.com/suite/help/19.2/Quick_Start_Installation_Guide.html and refer to this post if you encounter any issues.
conf.data.APPIAN_DATA_SOURCE=jdbc/AppianDS --- AppianDS is the jndi name specified in Resource name="jdbc/xxx" in tomact resource.xml
Your datasource url should be jdbc:mysql://localhost:3306/business_schema( name of businessschema)?useOldAliasMetadataBehavior=true
Thank you for your reply and helping me out with the connection string and JNDI.
I am already using that "Quick Start Installation Guide" and I have only followed that instruction guide for setting up Appian server but still facing error.
This is the error in the log file
SEVERE [localhost-startStop-1] org.apache.tomcat.jdbc.pool.ConnectionPool.init Unable to create initial connections of pool. java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)