<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Answers to: Troubleshoot ActiveDirectory user import to my ivy 3.9 webApp</title><link>https://answers.axonivy.com/questions/3788/troubleshoot-activedirectory-user-import-to-my-ivy-3-9-webapp</link><description>&lt;p&gt;I have to maintain a legacy workflow app still running with XpertIvy 3.9. The users of the application are synchronized from our MS Active Directory.&lt;/p&gt;
&lt;p&gt;Recently I got reports that some users are not able to connect to the WebApp. 
What can I do to verify and trace the ActiveDirectory user synchronization?&lt;/p&gt;</description><atom:link href="https://answers.axonivy.com/questions/3788/troubleshoot-activedirectory-user-import-to-my-ivy-3-9-webapp" rel="self"></atom:link><language>en</language><lastBuildDate>Wed, 01 May 2019 03:14:29 -0400</lastBuildDate><item><title>Answer by Reguel Wermelinger</title><link>https://answers.axonivy.com/questions/3788/troubleshoot-activedirectory-user-import-to-my-ivy-3-9-webapp/3789</link><description>&lt;p&gt;&lt;strong&gt;Logging with Xpert.ivy 3.9&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Logs in 3.9 are not written to files as you'd might expect. But stored in the SystemDatabase. 
Before you start analyzing any logs, you may verify the Level of logs, that will be kept in the database. To do so, run &lt;code&gt;[xpertIvyInstallDir]/bin/XpertIvyServerConfig&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;&lt;img alt="alt text" src="https://answers.axonivy.com/upfiles/Xpert.ivy_Server_Configuration_042.png"&gt;&lt;/p&gt;
&lt;p&gt;The LogLevel &lt;code&gt;INFO&lt;/code&gt; should be sufficient for most ActiveDirectory analyses. Nevertheless &lt;code&gt;FINER&lt;/code&gt; will bring more detailed results about synchronization runs that have started or ended.
Save and restart the XpertIvyServer if you had to adjust the LogLevel.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;WARNING&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Logs in the SystemDB can grow huge and either decrease the performance of the WorkflowApp  or in worst case make the system inaccessible (due to the lack of disk_space).
Therefore it is good practice to clean entries in the table &lt;code&gt;ilog_log&lt;/code&gt; regulary e.g. with a cron job or schedulded task.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Analyze the JNDI import logs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With the logViewer binary : Convenient for re-usage!&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;start the logviewer binary &lt;code&gt;[xpertIvyInstallDir]/bin/LogViewer&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Connect to user server: using user &lt;code&gt;PowerCustomer&lt;/code&gt; and password &lt;code&gt;PowerUser&lt;/code&gt; : &lt;a href="https://developer.axonivy.com/releases/ivy/3.9.latest/documents/ServerGuide/logviewer_login.htm"&gt;https://developer.axonivy.com/releases/ivy/3.9.latest/documents/ServerGuide/logviewer_login.htm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;configuration tab: add, select and apply a session&lt;/li&gt;
&lt;li&gt;configuration tab: add a filter for the category &lt;code&gt;ivyteam.webapp.workflow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Log Entries: inspect log entries related to &lt;code&gt;JndiUserThread&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Optional: go back to the &lt;code&gt;User&lt;/code&gt; tab and store your session/filter for later re-usage&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="alt text" src="https://answers.axonivy.com/upfiles/ivy39_adLogViewer.gif"&gt;&lt;/p&gt;
&lt;p&gt;With the SystemDB : fast alternative if you are unable to use the LogViewer&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the DMBS front-end that can access the system database of your server. &lt;/li&gt;
&lt;li&gt;Fire a query (see below) to select logs categorized to &lt;code&gt;ivyteam.webapp.workflow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Inspect &lt;code&gt;LogDetailMessages&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;query:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SELECT * FROM ilog_log as entry
JOIN ilog_category c on (c.CategoryId = entry.CategoryId)
WHERE c.CategoryName = 'ivyteam.webapp.workflow'
AND entry.LogDetailMessage LIKE '%JndiUser%'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt="alt text" src="https://answers.axonivy.com/upfiles/39systemDb_queryAdUserLogs.png"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Verify the applied configuration&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;View and verify the Active Directory configuration of your Xpert.ivy WebApp. &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the AD-Configuration: Via ivy-Webinterface &amp;gt;&amp;gt; Admin ( link in header) &amp;gt;&amp;gt; Click on the 'ivy' icon of the affected WebApp &amp;gt;&amp;gt; Deactive App &amp;gt;&amp;gt; Confirm deactivation &amp;gt;&amp;gt; Edit AAA &lt;img alt="alt text" src="https://answers.axonivy.com/upfiles/39_adConfiguration.png"&gt; &lt;/li&gt;
&lt;li&gt;Open a simple ActiveDirectory Browser third party tool (such as &lt;a href="http://www.jxplorer.org/"&gt;JXplorer&lt;/a&gt;). And connect using the same URL, credentials and BaseDN (context) as configured in the ivy-Webinterface. &lt;img alt="alt text" src="https://answers.axonivy.com/upfiles/jxplorer_connectionDialog.png"&gt; &lt;img alt="alt text" src="https://answers.axonivy.com/upfiles/jxplorer_userLookup.png"&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Items to verify:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lives the user in the import &lt;code&gt;Context&lt;/code&gt; defined? or is it an imported user from an external AD (forest)?&lt;/li&gt;
&lt;li&gt;does the &lt;code&gt;LDAP Filter for users&lt;/code&gt; definition block the user. Is there a need to have a certain property which some users don't have?&lt;/li&gt;
&lt;li&gt;is the &lt;code&gt;Only import members of user group&lt;/code&gt; active? And if so, is the user really a member of this group?&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Reguel Wermelinger</dc:creator><pubDate>Wed, 01 May 2019 03:14:29 -0400</pubDate><guid>https://answers.axonivy.com/questions/3788/troubleshoot-activedirectory-user-import-to-my-ivy-3-9-webapp/3789</guid></item></channel></rss>