What can we help you with?

Sorry, you do not have permission to carry out this action.
Avolve Software - Powered by Kayako Help Desk Software
What can we help you with?

knowledgebase : Installation > ProjectDox Services

Advancing / Completing Sub-Workflows within ProjectDox Workflow WorkflowServer.conf Requirements

 

When using ProjectDox Workflow, if your workflow has sub-workflows that need to be completed in order to advance the main workflow to the next activity, the following is required:

 

Open the ProjectDox Workflow Server service config file (ProjectDoxWorkflow.exe.config) located on the Application Server and add the following End Point name to the configuration, updating the server name to match the environment you are working in at the time.  The additional setting in the config file is needed when the ProjectDox Workflow contains a Custom Code Activity being used to end the workflow, which is needed in the case of sub-workflows.  This allows the workflow to move forward without a user having to log in to the ProjectDox application to initiate any workflow tasks of theirs to be processed in order to move forward in the workflow.

 

endpoint name="WorkflowServiceEndpoint" address="http://AppServerName:8879/WorkflowService" binding="basicHttpBinding" contract="ProjectDoxWorkflow.Contracts.IWorkflowService"

 

 

Customers Accounts where this code is needed and name of Workflow Definition used on:

 

  • Montgomery County Building - Department of Public Safety:   COMBUILD Workflow

 

Test the incremental update of the index

The incremental update of the index can be tested by uploading a new file using ProjectDox and determining if that document can be found by searching for it.

1)     Upload a new document.

2)     After verifying the file was uploaded and processed correctly by the job processor, open the LuceneUITest application and search for the document. If the polling is set for 300 seconds, check after 5 minutes.

3)     Review the SearchEngineLog.log file for confirmation that the ProjectDox items have been indexed and become searchable.

4)     Confirm Access: If you see the following error, you may not be able to connect to the web server containing the search service. 

See attached image, LuceneTest1 

5)     You can test the connection to the search service by opening a browser window on the ProjectDox web server.

Using the Lucene Test Command Line Tool

 

Initializing\Re-indexing the Lucene Index

There is a BAT file named “ExecuteReindex.bat” located in the ProjectDox\bin folder that should be copied to the WCF Server installation and can also be used to initialize the Lucene index. It is the plan to build the WCF with this file so no move is necessary.

See attached image, LuceneTest2

  The file can be opened in a text editor and updated or used “as-is.”

See attached image, LuceneTest3

The /r switch will tell the application to re-index all records.

The BAT file can be executed directly by double-clicking it or executed by the Windows Scheduler.

 

Optimizing the Lucene Index

There is a BAT file called “ExecuteOptimize.bat” located in the ProjectDox\bin folder that should be copied to the WCF Server installation and can also be used to optimize the Lucene index. It is the plan to build the WCF with this file so no move is necessary.

See attached image, LuceneTest4

The file can be opened in a text editor and updated or used “as-is.” 

See attached image, LuceneTest5

The /o switch will tell the application to optimize the index.

The BAT file can be executed directly by double-clicking it or executed by the Windows Scheduler.

 

Scheduling the Optimization Process using Windows Scheduler

 1)   The Lucene Index can be optimized at periodic intervals using the Windows Task Scheduler. Open the Task Scheduler by navigating to the System Tools shortcut folder.

See attached image, LuceneTest6

2)    Choose the “Create Task” command to create a new task for the process.

See attached image, LuceneTest7

3)     Enter a name for the process, a description, and choose the run option preferred.

 See attached image, LuceneTest8

4)     Choose a Trigger for the process which includes when it will be executed.

 See attached image, LuceneTest9

5)     Choose the action you want to perform. Set the LuceneUITest.exe as the program to run.

 See attached image, LuceneTest10

6)     Set the arguments to pass to the application. A “/o” will tell it to optimize the index, a “/r” will tell it to re-index the index.

 See attached image, LuceneTest11

7)     After you click OK, the task scheduler may ask you for the credentials of the user you want the process to run under. Enter the user name and password and click OK.

 See attached image, LuceneTest12

 

ProjectDox Utility Service Troubleshooting Tips

 

The ProjectDox Utility Service is responsible for running ProjectDox processes in the background such as scheduled tasks, group maintenance functions, clean-up files from temporary folders, clean-up workflow instances, republishing files, applying global permissions to new users, synching LDAP users to ProjectDox database, archiving data from ProjectDox logs and tables and deleting old data from the application and database tables.

The ProjectDox Utility Service accomplishes these tasks by making web service calls to ProjectDox.  All of the functions listed are performed each time the Utility Service runs.  The frequency that the Utility Service runs is set to every 5 minutes by default but can be modified within the config file for the service to occur at whatever frequency the user desires.

If the service is having trouble running, you can troubleshoot by disabling the functions one by one to determine the specific call that is failing if there is no discernable information being logged in the debug.txt file located in the installation folder of the Utility Service.

The ProjectDox Utility service allows for disabling each feature that the Utility manages. By default the values are set to “false”. Set each one to true, one at a time, to determine if the Utility service is causing performance issues, or you can eliminate the Utility as the cause.

 

  1. Set DisableProcessTaskScheduler=true
  2. Restart service
  3. Does ProjectDox continue to experience performance issues.
    1. If no, then you have determined which feature is producing the problem and it can remain stopped. Collect logs, review the Event Viewer and enter a ticket for development along with the ProjectDox Utility config file.  
    2. If yes, go to step 4.
  4. Repeat steps 1-3 for each setting.

 

        <addkey="DisableProcessTaskScheduler"value="false"/>

        <addkey="DisableProcessGroupMaint"value="false"/>

        <addkey="DisableProcessCleanupTemp"value="false"/>

        <addkey="DisableProcessCleanupWorkflow"value="false"/>

        <addkey="DisableProcessRepublish"value="false"/>

        <addkey="DisableProcessApplyGlobalPerms"value="false"/>

        <addkey="DisableProcessSyncLDAP"value="false"/>

        <addkey="DisableProcessArchiveOldData"value="false"/>

        <addkey="DisableProcessDeleteOldData"value="false"/>

 

All SQL Server ADO.NET Connection String Properties

 

This table shows all connection string properties for the ADO.NET SqlConnection object. Most of the properties are also used in ADO. Using this table will give you a better understanding of the options available when setting the connection string values in the ProjectDox Services config files.

 

KeywordDefaultExplanation
Application Name   The name of the application, or '.Net SqlClient Data Provider' if no applicationname is provided.
Async 'false' When true, enables asynchronous operation support. Recognized values are true, false, yes, and no.
AttachDBFilename
-or-
extended properties
-or-
Initial File Name
  The name of the primary database file, including the full path name of an attachable database. AttachDBFilename is only supported for primary data files with an .mdf extension. The attachment will fail if the primary data file is read-only. The path may be absolute or relative by using the DataDirectory substitution string. If DataDirectory is used, the database file must exist within a subdirectory of the directory pointed to by the substitution string.

Note that remote servers, HTTP, and UNC (\\server\sharename\folder\) path names are not supported.

The database name must be specified with the keyword 'database' (or one of its aliases) as in the following: "AttachDbFileName=|DataDirectory|\data\YourDB.mdf;integrated security=true;database=YourDatabase". An error will be generated if a log file exists in the same directory as the data file and the 'database' keyword is used when attaching the primary data file. In this case, remove the log file. Once the database is attached, a new log file will be automatically generated based on the physical path.
Connect Timeout
-or-
Connection Timeout
15 The length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error.
Connection Lifetime 0 When a connection is returned to the pool, its creation time is compared with the current time, and the connection is destroyed if that time span (in seconds) exceeds the value specified by Connection Lifetime. This is useful in clustered configurations to force load balancing between a running server and a server just brought online. A value of zero (0) causes pooled connections to have the maximum connection timeout.
Context Connection 'false' true if an in-process connection to SQL Server should be made.
Connection Reset 'true' Determines whether the database connection is reset when being removed from the pool. Setting to 'false' avoids making an additional server round-trip when obtaining a connection, but the programmer must be aware that the connection state is not being reset.
Current Language   The SQL Server Language record name.
Data Source
-or-
Server
-or-
Address
-or-
Addr
-or-
Network Address
  The name or network address of the instance of SQL Server to which to connect. The port number can be specified after the server name: server=tcp:servername, portnumber. When specifying a local instance, always use (local). To force a protocol, add one of the following prefixes: np:(local), tcp:(local), lpc:(local)

ADO.NET 2.0 does not support asynchronous commands over shared memory for SQL Server 2000 or earlier. However, you can force the use of TCP instead of shared memory, either by prefixing tcp: to the server name in the connection string, or by using localhost.
Encrypt 'false' When true, SQL Server uses SSL encryption for all data sent between the client and server if the server has a certificate installed. Recognized values are true, false, yes, and no.
Enlist 'true' When true, the pooler automatically enlists the connection in the creation thread's current transaction context. Recognized values are true, false, yes, and no.
Failover Partner N/A The name of the failover partner server where database mirroring is configured. The Failover Partner keyword is not supported by .NET Framework version 1.0 or 1.1.
Initial Catalog
-or-
Database
  The name of the database.
Load Balance Timeout 0 The minimum time, in seconds, for the connection to live in the connection pool before being destroyed.
MultipleActiveResultSets 'false' When true, an application can maintain multiple active result sets (MARS). When false, an application must process or cancel all result sets from one batch before it can execute any other batch on that connection. Recognized values are true and false. The keyword is not supported by .NET Framework version 1.0 or 1.1.
Integrated Security
-or-
Trusted_Connection
'false' Whether the connection is to be a secure connection or not. Recognized values are 'true', 'false', and 'sspi', which is equivalent to 'true'.
Max Pool Size 100 The maximum number of connections allowed in the pool.
Min Pool Size 0 The minimum number of connections allowed in the pool.
Network Library
-or-
Net
'dbmssocn' The network library used to establish a connection to an instance of SQL Server. Supported values include dbnmpntw (Named Pipes), dbmsrpcn (Multiprotocol, Windows RPC), dbmsadsn (Apple Talk), dbmsgnet (VIA), dbmslpcn (Shared Memory, local machine only) and dbmsspxn (IPX/SPX), dbmssocn (TCP/IP) and Dbmsvinn (Banyan Vines).
The corresponding network DLL must be installed on the system to which you connect. If you do not specify a network and you use a local server (for example, "." or "(local)"), shared memory is used.
Packet Size 8192 Size in bytes of the network packets used to communicate with an instance of SQL Server.
Password
-or-
Pwd
  The password for the SQL Server account logging on. Not used with (the strongly recommended) 'Integrated Security=true' option.
Persist Security Info 'false' When set to 'false' (strongly recommended), security-sensitive information, such as the password, is not returned as part of the connection if the connection is open or has ever been in an open state. Resetting the connection string resets all connection string values including the password.
Pooling 'true' When true, the SQLConnection object is drawn from the appropriate pool, or if necessary, is created and added to the appropriate pool. Recognized values are true, false, yes, and no.
Replication 'false' true if replication is supported using the connection.
Transaction Binding Implicit Unbind Controls connection association with an enlisted System.Transactions transaction. Possible values are:
Transaction Binding=Implicit Unbind;
Transaction Binding=Explicit Unbind;
Implicit Unbind causes the connection to detach from the transaction when it ends. After detaching, additional requests on the connection are performed in autocommit mode. The System.Transactions.Transaction.Current property is not checked when executing requests while the transaction is active. After the transaction has ended, additional requests are performed in autocommit mode.
Explicit Unbind causes the connection to remain attached to the transaction until the connection is closed or an explicit SqlConnection.TransactionEnlist(null) is called. An InvalidOperationException is thrown if Transaction.Current is not the enlisted transaction or if the enlisted transaction is not active.
TrustServerCertificate 'false' When set to true, SSL is used to encrypt the channel when bypassing walking the certificate chain to validate trust. If TrustServerCertificate is set to true and Encrypt is set to false, the channel is not encrypted. Recognized values are true, false, yes, and no.
Type System Version N/A A string value that indicates the type system the application expects. Possible values are:
Type System Version=SQL Server 2000;
Type System Version=SQL Server 2005;
Type System Version=SQL Server 2008;
Type System Version=Latest;
When set to SQL Server 2000, the SQL Server 2000 type system is used. The following conversions are performed when connecting to a SQL Server 2005 instance:
XML to NTEXT
UDT to VARBINARY
VARCHAR(MAX), NVARCHAR(MAX) and VARBINARY(MAX) to TEXT, NEXT and IMAGE respectively.
When set to SQL Server 2005, the SQL Server 2005 type system is used. No conversions are made for the current version of ADO.NET.
When set to Latest, the latest version than this client-server pair can handle is used. This will automatically move forward as the client and server components are upgraded.
User ID   The SQL Server login account.
User Instance 'false' A value that indicates whether to redirect the connection from the default SQL Server Express instance to a runtime-initiated instance running under the account of the caller.
Workstation ID The local computer name The name of the workstation connecting to SQL Server.

 

When new services are installed, the Enterprise Manager service creates a copy of configured files as well as default/original ones. These files can be located in each service folder, and in the ProjectDox folder as well. See Attachment 1 for an example.