Oracle® Retail Order Management System (CWSerenade) Configuration and Operations Guide Release 5.0

E94891-02

March 2018 Oracle® Retail Order Management System Configuration and Operations Guide, Release 5.0

E94891-02

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.

ii

Contact Information

30500 Bruce Industrial Parkway 1800 West Park Drive 7031 Columbia Gateway Drive Cleveland, OH 44139 USA Westboro, MA 01581 Columbia, MD 21046‐2289 Toll Free: 888.328.2826 Tel:508.655.7500 Tel: 443.285.6000 Tel: 440.498.4414 Fax:508.647.9495 Fax: 440.542.3043

Contents

CWSerenade Configuration CWSerenade Server Configuration ...... 14 Server Configuration Illustration ...... 15 Using Multiple CWSerenade Application Servers ...... 16 Self-Contained Application Servers ...... 17 Shared Application Servers ...... 17 Special Setup for Shared Application Servers ...... 20 Setting Up a CWSerenade Test Environment ...... 29 CWSerenade Environment Configuration...... 31 DBConfig Properties File ...... 31 Changing the Database Password ...... 33 A: Generate the encrypted passwords...... 33 CWSerenade Application Configuration ...... 35 CWDirectCP Properties File ...... 35 Configuring CWSerenade for TLS 1.2 ...... 49 Create SerenadeTLS Folder ...... 49 Verify Java Version and Update PATH Variable ...... 49 Create a keystore and private Key ...... 53 Create a Certificate Signing Request File ...... 54 Sign the Security Certificate Using an External Resource ...... 54 Export the Security Certificate To Make It Available to Install on Clients ...... 54 Import the Security Certificate into the Java Repository ...... 55 Configure Tomee to Allow TLS Communications ...... 56 Logging in to the TLS Enabled CWSerenade Application ...... 57 Expired Security Certificate ...... 61 JMS (Java Message Service) Providers for CWSerenade ...... 63 Switching JMS Providers ...... 65 HornetQ Configuration ...... 66 Configuring HornetQ for CWSerenade ...... 66 CWSerenade Property Settings for HornetQ ...... 68 JMS Properties File Settings for HornetQ ...... 68 JNDI Properties File for HornetQ ...... 68 HornetQ Configuration File ...... 69 HornetQ Jar Files ...... 70 Creating HornetQ Queues ...... 71

3/10/15 4 CWSerenade 5.0 Contents

Troubleshooting HornetQ ...... 73 IBM WebSphere MQ Configuration...... 75 Configuring WebSphere MQ for CWSerenade ...... 75 Context.XML File ...... 77 WebSphere MQ Jar Files ...... 79 CWSerenade Property Settings for WebSphere MQ ...... 80 JMS Properties File Settings for MQ ...... 80 JNDI Properties File Settings for MQ ...... 80 Troubleshooting WebSphere MQ ...... 82 FTP Configuration ...... 83 Delivered FTP Applications ...... 83 FTP Configuration File ...... 91 CWDirectCP Properties File ...... 91 Creating Your Own FTP Applications ...... 92 Delivered FTP Applications to Extract Information from the CWSerenade Database ...... 92 Delivered FTP Applications to Import Information to the CWSerenade Database ...... 95 Creating Your Own FTP Application ...... 98 FTP Troubleshooting ...... 101 Errors in FTP Log? ...... 101 Connection Not Established? ...... 101 FTP File Transmission Unsuccessful? ...... 101 FTP Transmission Successful? ...... 102 CDC Async Job Not Processing Records? ...... 103 SQL Server Recommendations for CWSerenade...... 104 Disk Configuration ...... 105 Power Saving Settings ...... 106 Setting the CWSerenade Database Compatibility Level to Match the Installed SQL Version ...... 106 Degree of Parallelism Setting ...... 107 Configure Temporary Database Files ...... 110 Configure Memory Settings in SQL Server ...... 115 Properties File Configuration...... 118 Summary of Properties Files ...... 119 Refresh System Properties (PROP)...... 129 Email Generation Setup...... 133 Setting up the Email Properties File ...... 134 Email Properties File Contents ...... 134 Changing the Email Password ...... 135 Email Setup within CWSerenade ...... 137

3/10/15 5 CWSerenade 5.0 Contents

Generate Notifications? ...... 137 Email Text Templates ...... 138 “From” Email Address ...... 139 HTML Email or Outbound Email XML Message? ...... 140 HTML Email Template Setup ...... 140 System Control Values Related to Email Generation ...... 142 Emails Troubleshooting ...... 144 Clearing the Cache for HTML Email Templates (CEML) ...... 146 Image Setup ...... 147 Setting Up Company Logos for Menu Screens ...... 148 Setting Up Menu Driver Images for Companies ...... 149 Setting Up Company Logos for Forms ...... 150 Setting Up Entity Logos for Pick Slips ...... 151 Setting Up Item Images ...... 153 Setting Up Item Images on the CWSerenade Application Server ...... 153 Custom Link Setup...... 155 Adding a Link to a Specified Screen ...... 156 Adding a Global Link to All Screens ...... 160 Authorization/Deposit Interface Setup ...... 161 System Control Values ...... 162 Number Assignment Value ...... 163 Service Bureau Settings ...... 163 Communication Method ...... 164 Order Types ...... 165 Pay Types ...... 165 Pick Slip Generation ...... 165 Integration Layer Jobs ...... 166 Notify Properties File ...... 167 Logging Properties File ...... 168 PC Manifest Interface Setup...... 170 System Control Value ...... 170 Manifest Properties File ...... 170 Manifest Web Service Configuration ...... 171 Vertex Setup ...... 172 Before You Start: Taxability Considerations ...... 173 Mapping Data from CWSerenade to Vertex ...... 173 Creating the Product Class ...... 174 Configuration Steps ...... 176 Setup within CWSerenade ...... 176 Set up Data within Vertex ...... 177 Configuration Files ...... 179

3/10/15 6 CWSerenade 5.0 Contents

Vertex wsdl (Web Service Definition Language) File ...... 179 VertexWS.xml File ...... 179 Default Values by Company XML File ...... 181 Warehouses XML File ...... 183 Using Microsoft Internet Explorer® for CWSerenade...... 185 Configuring Internet Explorer 8.0® or Higher (Remove Compatibility View) ..... 186 Preventing Incorrect Caching in Internet Explorer 9.0 ...... 187 Running Multiple Sessions of CWSerenade ...... 189 Locate/CWSerenade Configuration (Order Broker) ...... 190 Order Broker-Related System Control Values ...... 192 Locate Properties File ...... 200 WSDL Location (version 5.0 or higher) ...... 200 Endpoint URL’s (version 3.0 or 3.1) ...... 200 Setting the Daily Status Inquiry Time Window (all versions) ...... 201 Message Version Number ...... 202 Endpoint for Location Discovery Web Service ...... 202 Additional Locate Setup in CWSerenade ...... 203 Notes on Configuration in Locate ...... 206 Generic Web Services...... 208 Types of Web Services Available ...... 209 CWMessageIn Web Service ...... 210 Required Setup for the CWMessageIn Web Service ...... 210 CWServiceIn Web Service ...... 214 Required Setup for the CWServiceIn Web Service ...... 214 Generic Web Services: Supported Jobs and Messages ...... 217 Messages Processed by the CWServiceIn Web Service ...... 217 Messages Processed By the CWMessageIn Web Service ...... 218 Working with Web Service Authentication (WWSA) ...... 222 Web Service Authentication Process ...... 222 Web Services Eligible for Authentication ...... 223 Work with Web Service Authentication Screen ...... 224 Work with Web Service Authentication Users Screen ...... 226 Add User Window ...... 228 Using the CWProcessIn Message to Start a Periodic Process.229 CWProcessIn Message ...... 230 Sample CWProcessIn Message ...... 230 Responses to the CWProcessIn Message ...... 230 CWProcessIn Contents ...... 230

CWSerenade Operations and Maintenance

3/10/15 7 CWSerenade 5.0 Contents

Saving a Backup Copy of CWSerenade ...... 233 Creating a Backup Copy of the CWSerenade Components on the Application Server ...... 235 Creating a Backup Copy of the CWSerenade Components on the CWIntegrate Server ...... 236 Creating a Backup Copy of the CWSerenade Components on the Database Server ...... 238 General System Maintenance Plan...... 241 Logging into CWSerenade ...... 243 CWSerenade Login Screen ...... 243 About Application Screen ...... 245 About Application Screen Options ...... 246 Scheduling Jobs...... 248 How to Schedule a Job ...... 249 Running the Job Scheduler in a Multiple Server Environment ...... 249 Defining the Job Schedule ...... 251 Periodic Process Scheduling Examples ...... 254 Scheduled Jobs Screen ...... 257 Scheduled Jobs Troubleshooting ...... 262 Scheduled Jobs Log ...... 262 Troubleshooting Questions ...... 262 Periodic Functions Available to Schedule ...... 265 Accounts Payable (A/P) Periodic Functions ...... 266 Accounts Receivable (A/R) Periodic Functions ...... 269 General Usage (ALL) Periodic Functions ...... 271 General Ledger (G/L) Periodic Functions ...... 291 Customer Service (C/S) Periodic Functions ...... 293 E-Commerce (EDC) Periodic Functions ...... 297 Fulfillment (FUL) Periodic Functions ...... 300 Interface (INT) Periodic Functions to Start and Stop IJCT Jobs ...... 305 Additional Interface (INT) Periodic Functions ...... 309 Inventory (INV) Periodic Functions ...... 316 Order Entry (O/E) Periodic Functions ...... 319 Purchase Order (P/O) Periodic Functions ...... 321 Working with Report Control (WRPT) ...... 322 Auto-Print Documents ...... 322 Work with Report Control Screen ...... 327 Create Report Control Screen ...... 329 Document Management (My Docs)...... 330 Document Management Screen ...... 331 Report Listings and Display Options ...... 331

3/10/15 8 CWSerenade 5.0 Contents

Document Management Screen Options ...... 336 Reports Available in CSV (Spreadsheet) Format ...... 340 Reports Troubleshooting ...... 345 Job Management (My Jobs) ...... 347 Job Management Screen ...... 348 Job Management Screen Options ...... 358 Jobs Troubleshooting ...... 365 Long Running Jobs Monitor ...... 369 Jobs Excluded from the Long Running Jobs Monitor ...... 370 Long Running Job Email ...... 370 Sending another Long Running Job Email for the Same Job ...... 371 Monitor Properties File ...... 372 Applying Changes to the Monitor Properties File ...... 376 Display Active Batch Jobs (DABJ) ...... 378 Which Jobs are Active Batch Jobs? ...... 378 Verifying the Status of Active Batch Jobs ...... 378 If a Batch Job is not on the Display Active Batch Jobs Screen ...... 379 Display Active Batch Jobs Screen ...... 380 Display Job History (DJHY)...... 382 Display Job History Screen ...... 382 Forms Management (My Forms) ...... 384 Forms Setup ...... 386 Specify the Location of the Forms Folder ...... 386 Specify Whether to Retain XML Files for Generated Forms ...... 386 Indicate Whether to Automatically Send the Form to a Printer ...... 386 Specify the Maximum Number of Pick Slips Per Spool File ...... 386 Set up Related System Control Values ...... 388 Create Image Files for Company or Entity Logos (Graphical Forms) ...... 388 FormTypeMapping Properties File ...... 388 Reviewing and Working with Forms on the CWSerenade Server ...... 397 Where are Generated Forms Located? ...... 397 Form Naming Conventions ...... 397 Forms Troubleshooting ...... 399 Forms Summary Table ...... 401 Forms Management Screen ...... 404 Form Listings and Display Options ...... 404 Form Management Screen Options ...... 409 CWSerenade Support Notifications...... 412 Support Notification Processing ...... 412 Serenade Support Notification ...... 413 System Alert Email ...... 413 Support Notification Setup ...... 414

3/10/15 9 CWSerenade 5.0 Contents

Restarting CWSerenade ...... 415 Restarting the SERENADE Service ...... 415 Resetting Processes and Jobs on Server Startup ...... 417 Monitor Properties File ...... 420 Running a Periodic Process on Server Startup ...... 423 Monitor Properties File ...... 424

Troubleshooting and FAQs Reviewing CWSerenade Data Source Configuration...... 428 tomee.xml File ...... 428 Reviewing CWSerenade Application Settings in the Jenasys Properties File ...... 430 Jenasys Properties File ...... 430 Reviewing the CWSerenade Version...... 432 Version Properties File ...... 432 Logs...... 433 TomEE Logs ...... 435 Log4j XML File ...... 435 CWDirect Log ...... 437 CWSerenade Application Logs ...... 440 Location of CWSerenade Application Logs ...... 440 Logging Level ...... 441 Archived Logs ...... 442 Logging Properties File ...... 443 CWSerenade MQ Message Log ...... 452 CWSerenade Application Log ...... 453 CWSerenade Response Log ...... 454 CWSerenade Trace Log ...... 455 CWSerenade Manifest Log ...... 456 CWSerenade Order Log ...... 456 CWSerenade PayPal Log ...... 457 Cybersource Log ...... 458 User Exit/Edit Point (UEP) Log ...... 458 Customer API Log ...... 459 Alert Log ...... 460 IntegrationOrder (ChannelAdvisor) Log ...... 460 Relate (Loyalty) Log ...... 460 Locate Log ...... 460 SQL Server Logs ...... 461 Windows Event Viewer ...... 464

3/10/15 10 CWSerenade 5.0 Contents

Monitoring Jobs ...... 467 Additional Job Monitoring ...... 467 Job Monitor Setup ...... 469 Monitor Properties File ...... 469 Job Monitor Rules ...... 471 Job Monitor Queries ...... 471 Which Jobs are Monitored? ...... 473 Job Monitor Examples ...... 485 Job Monitor Example: PICK_OUT ...... 485 Job Monitor Example: ORDER_IN ...... 486 Job Monitor Example: Query ...... 487 Work with Job Monitor Screen (WJMO) ...... 488 Work with Job Monitor Rules Screen ...... 491 Job Monitor Rules Window ...... 495 Caching ...... 499 My Cache Screen ...... 500 Caching with Multiple Application Servers ...... 502 Assigning a Server to a Multicast Group ...... 502 Verifying that Caching for Multiple Application Servers is Configured Correctly ...... 503 Determining the Subnet for a Server ...... 504 Which CWSerenade Tables are Cached? ...... 505 DBTableCacheMapping Properties File ...... 505 Ehcache ...... 510 Ehcache.xml File ...... 510 Reload System Cache (RCHE) ...... 512 Frequently Asked Questions...... 514 Troubleshooting Index...... 520 Index ...... 521

3/10/15 11 CWSerenade Configuration

Note: The rebranding for the latest version of this documentation set is in development as part of post MICROS acquisition activities. References to former MICROS product names may exist throughout this existing documentation set.

Before you begin using CWSerenade, you need to perform the following configuration.

Required configuration:

• CWSerenade Server Configuration • CWSerenade Environment Configuration • CWSerenade Application Configuration • HornetQ Configuration or IBM WebSphere MQ Configuration • FTP Configuration • SQL Server Recommendations for CWSerenade • User Configuration • Properties File Configuration • Working with Web Service Authentication (WWSA) Optional configuration:

• Configuring CWSerenade for TLS • Email Generation Setup • Image Setup • Custom Link Setup • Authorization/Deposit Interface Setup

3/10/15 12 CWSerenade 5.0 CWSerenade Configuration

• PC Manifest Interface Setup • Vertex Setup • Using Microsoft Internet Explorer® for CWSerenade • Locate/CWSerenade Configuration (Order Broker) Data security: In addition, see the CWSerenade Data Security and Encryption Reference for more information on encrypting credit card data in the CWSerenade database and recommended guidelines to comply with Payment Card Industry (PCI) data security standards.

3/10/15 13 CWSerenade Server Configuration

Purpose: CWSerenade runs on multiple servers:

• Application server: This server contains the configuration files, reports, documents, and forms, and other settings required to run the CWSerenade application. It also provides the GUI interface for the users. You can have one or more CWSerenade application servers; see Using Multiple CWSerenade Application Servers for configuration recommendations. One of these servers is typically also used as the HornetQ server if you are using HornetQ as your JMS provider; see HornetQ Configuration . • Database server: This server contains the CWSerenade database and any other database that you use to transmit data between CWSerenade and another application, such as CWStore. • CWIntegrate server: This server contains any sites that are used to transfer data between CWSerenade and another system. This server is typically also used as the MQ Server if you are using IBM WebSphere MQ as your JMS provider. See IBM WebSphere MQ Configuration on page 75 for more information on MQ setup. In this topic:

• Server Configuration Illustration • Using Multiple CWSerenade Application Servers • Setting Up a CWSerenade Test Environment

3/10/15 CWSerenade Server Configuration 14 CWSerenade 5.0

Server Configuration Illustration

3/10/15 CWSerenade Server Configuration 15 CWSerenade 5.0

Using Multiple CWSerenade Application Servers

Purpose: You can use multiple CWSerenade application servers that point to the same CWSerenade database. You may wish to use multiple application servers to balance the system load across servers and spread out the number of users across more than one server.

Server recommendations: MICROS recommends that certain jobs run on separate servers.

• Server 1: Dedicate one application server to running the async jobs, integration layer processes, and e-commerce jobs. Also, use this application server to run miscellaneous jobs used for reporting. If you wish to schedule any of these jobs, schedule them to run on this server; see Scheduling Jobs for more information on how to schedule a job. • Server 2: Dedicate one application server to long running batch jobs, such as pick slip generation, memberships, and deposits. If you wish to schedule any of these jobs, schedule them to run on this server; see Scheduling Jobs for more information on how to schedule a job. • Server 3: Dedicate a separate application server to highly interactive jobs, such as Order Entry. Typically, this application server is not used for scheduling jobs. Note: Based on your number of users and transaction volume, you may have more than one application server devoted to highly interactive jobs. MICROS recommends a separate application server for every 30 order entry operators. Self-contained or shared files? You can configure your application servers to be either self-contained, or to share configuration files, etc. that are stored on one of the application servers.

• Self-Contained Application Servers • Shared Application Servers Updating a properties/configuration file: When you change a properties file or other configuration file, you must restart CWSerenade before the change takes effect; see Restarting CWSerenade for instructions.

In addition, if you use multiple application servers:

• If you use multiple self-contained CWSerenade application servers, you need to maintain the properties file on each application server. The Manifest Properties file must be maintained on the application server that communicates with the manifesting station. See Self-Contained Application Servers . • If you use multiple shared CWSerenade application servers, you need to maintain the properties file on the primary application server. The Manifest Properties file must be maintained on the application server that communicates with the manifesting station. See Shared Application Servers and Special Setup for Shared Application Servers .

3/10/15 CWSerenade Server Configuration 16 CWSerenade 5.0

Self-Contained Application Servers

When you use multiple application servers that are self-contained:

• Any configuration files, such as the CWSerenade properties files, must be duplicated on each application server. • Non-database items, such as reports, documents, and forms, that are generated on one application server, are not accessible from a different application server. For example, if a user clicks on a document on the Document Management screen that is not stored on the application server that the user is connected to, the user will not be able to view the document. If an application server fails: If an application server goes down, you can have users that were logged into that application server log into another application server that is still running until the other application server is brought back up. To do this, change the user’s URL to point to the other application server, where APP1 is the name or IP address of the application server and 8080 is the port number: http://APP1:8080//CWSerenade.html .

Self-Contained Application Server Illustration:

Shared Application Servers

When you use multiple application servers that share configuration settings:

• Any configuration files, such as the CWSerenade properties files, are stored on one server. This server can be a separate server from any of the actual application servers running CWSerenade or it can be one of the actual application servers. • Configuration server: If the server that holds the configuration files is a server separate from any of the actual application servers running CWSerenade, the configuration files must be stored on a shared network drive. • Primary/Secondary servers: If the server that holds the configuration files is one of the application servers, the system considers this application server the primary application server and the other application servers the secondary application servers. The configuration files are stored on a local drive on the primary

3/10/15 CWSerenade Server Configuration 17 CWSerenade 5.0

application server and the secondary application servers use a shared drive to point to the configuration files on the primary applications server. • Non-database items, such as reports, documents, and forms, that are generated on one application server, are accessible from a different application server. If an application server fails:

• Configuration server setup: If you use a separate configuration server and one of the application servers goes down, all of the other application servers are able to remain up and operational. If the configuration server goes down, users will not be able to access CWSerenade until the configuration server is back up, or until you configure another server to be the configuration server. Important: If you did not create a backup copy of the configuration server, you will have lost the configuration setup that was on that server. See Saving a Backup Copy of CWSerenade for instructions. • Primary/secondary server setup: • If a secondary application server goes down, you can have users that were logged into the secondary application server log into another application server that is still running until the other application server is brought back up. To do this, change the user’s URL to point to the other application server, where APP1 is the name or IP address of the application server and 8080 is the port number: http://APP1:8080//CWSerenade.html . • If the primary application server goes down, users will not be able to access CWSerenade until the primary application server is brought back up. If the primary application server is unrecoverable, you will need to reconfigure one of the other application servers as the primary application server and point the remaining application servers to the new primary application server. Important: If you did not create a backup copy of the primary application server, you will have lost any data that was on that server. See Saving a Backup Copy of CWSerenade for instructions.

3/10/15 CWSerenade Server Configuration 18 CWSerenade 5.0

Configuration Server/Application Server Illustration:

3/10/15 CWSerenade Server Configuration 19 CWSerenade 5.0

Primary/Secondary Application Server Illustration:

Special Setup for Shared Application Servers

• Jenasys Properties File • CWDirectCP Properties File • Logging Properties File • Encryption Properties File

3/10/15 CWSerenade Server Configuration 20 CWSerenade 5.0

Jenasys Properties File

Setting Description

config.dir The directory on the CWSerenade application server where the system stores the server run-time data. The delivered setting is C:/Serenade/CWSerenade . If You Use Multiple Application Servers Configuration server or primary application server: This is a shared directory on the local drive. Secondary application server: This is a mapped directory that points to the configuration server or primary application server’s drive. For example: //APP1/Serenade/CWSerenade , where APP1 is the configuration server or primary application server’s name or IP address.

For more information: See Jenasys Properties File for more information on the additional settings in this file.

3/10/15 CWSerenade Server Configuration 21 CWSerenade 5.0

CWDirectCP Properties File

Setting Description

CWDIRECTCP_ The location on the CWSerenade application server REPORTS_DIRECTORY where the system saves a copy of reports. The delivered directory is C:\\serenade\\CWSerenade\\Forms , where C: is the root drive of the CWSerenade application server. Note: All backslashes in the directory path must be escaped (doubled \\ ). If you Use Multiple Application Servers Configuration server or primary application server: This is a shared directory on the local drive. Secondary application server: This is a mapped directory that points to the configuration server or primary application server’s drive. For example: \\\\APP1\\serenade\\CWSerenade\\Forms , where APP1 is the configuration server or primary application server’s name or IP address. CWDIRECTCP_ The location on the CWSerenade application server DOCUMENTS_ where the system saves a copy of any documents (spool DIRECTORY files). The delivered directory is C:\\serenade\\CWSerenade\\Forms\\Documents , where C: is the root drive of the CWSerenade application server. Note: All backslashes in the directory path must be escaped (doubled \\ ). If you Use Multiple Application Servers Configuration server or primary application server: This is a shared directory on the local drive. Secondary application server: This is a mapped directory that points to the configuration server or primary application server’s drive. For example: \\\\APP1\\serenade\\CWSerenade\\Forms\\Documen ts , where APP1 is the configuration server or primary application server’s name or IP address. CWDIRECTCP_LINK_ Defines the text to display on the CWSerenade screens TEXT for the link. Example: If you enter Go To CNN , then each screen will have a link that reads Go To CNN . If you are Using Multiple Application Servers If you are using multiple application servers, you will need to update this setting on each server.

3/10/15 CWSerenade Server Configuration 22 CWSerenade 5.0

Setting Description

CWDIRECTCP_LINK_ Defines the URL to launch when a user clicks the link on URL a CWSerenade screen. Example: If you enter http://www.cnn.com , the system opens a new browser window and launches the URL to advance to the CNN website. If you are Using Multiple Application Servers If you are using multiple application servers, you will need to update this setting on each server.

For more information: See CWDirectCP Properties File for more information on the additional settings in this file.

3/10/15 CWSerenade Server Configuration 23 CWSerenade 5.0

Logging Properties File

Setting Description

CW_LOG_DIR The directory path on the CWSerenade application server where the logs are located. The delivered directory is C:\\serenade\\CWSerenade\\Logs , where C: is the root drive of the CWSerenade application server. Note: All backslashes in the directory path must be escaped (doubled \\ ). If you Use Multiple Application Servers Configuration server or primary application server: This is a shared directory on the local drive. Secondary application server: This is a mapped directory that points to the configuration server or primary application server’s drive. For example: \\\\APP1\\serenade\\CWSerenade\\Logs , where APP1 is the configuration server or primary application server’s name or IP address. MQ_FILE_NAME The name of the log that tracks XMLs and transactional messages generated or received by CWSerenade. The recommended setting is Message.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two applications servers named SERVER1 and SERVER2 , rename the Message log on each server to MSGSERVER1.log and MSGSERVER2.log . APP_FILE_NAME The name of the log that stores application information. The delivered setting is APP.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two applications servers named SERVER1 and SERVER2 , rename the APP log on each server to APPSERVER1.log and APPSERVER2.log .

3/10/15 CWSerenade Server Configuration 24 CWSerenade 5.0

Setting Description

RESP_FILE_NAME The name of the log that stores response information. The delivered setting is RESP.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two applications servers named SERVER1 and SERVER2 , rename the RESP log on each server to RESPSERVER1.log and RESPSERVER2.log . TRACE_FILE_NAME The name of the log that stores trace information. The delivered setting is TRACE.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two applications servers named SERVER1 and SERVER2 , rename the TRACE log on each server to TRACESERVER1.log and TRACESERVER2.log . MANIFEST_FILE_NAME The name of the log that stores manifesting information. The delivered setting is MANIFEST.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two applications servers named SERVER1 and SERVER2 , rename the MANIFEST log on each server to MANIFESTSERVER1.log and MANIFESTSERVER2.log . ORDER_FILE_NAME The name of the log that stores order API information. The delivered setting is ORDER.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2 , rename the ORDER log on each server to ORDERSERVER1.log and ORDERSERVER2.log .

3/10/15 CWSerenade Server Configuration 25 CWSerenade 5.0

Setting Description

PAYPAL_FILE_NAME The name of the log that stores PayPal transaction information. The delivered setting is PAYPAL.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2 , rename the PAYPAL log on each server to PAYPALSERVER1.log and PAYPALSERVER2.log .

For more information: See Logging Properties File on page 443 for more information on the additional settings in this file.

3/10/15 CWSerenade Server Configuration 26 CWSerenade 5.0

Encryption Properties File

Setting Description

CW_PATH1= If you are using the CWSerenade encryption routine, the directory path where the encryption key is located. For example: C:\\EncryptionKey\\ . Required if the security level setting is 3 (recommended setting). Note: • All backslashes in the directory path must be escaped (doubled \\ ). • PCI compliance suggests storing the encryption keys in a location separate from the CWSerenade application server. • Unlike the example folder location above, you should name the folder where you will store the encryption key a name that does not represent the contents of the file. The directory path can be a mapped drive on another machine as long as the mapped drive is always connected when the application server is running. For example: \\\\SERVER1\\EncryptionKey\\ , where SERVER1 is the server’s name or IP address. If the folder in the directory path does not exist, you must create it before generating the encryption keys. CW_PATH2= If you are using the CWSerenade encryption routine, the directory path where the key encryption key is located. For example: C:\\KeyEncryptionKey\\ . Required if the security level setting is 3 (recommended setting). Note: • All backslashes in the directory path must be escaped (doubled \\ ). • PCI compliance suggests storing the encryption keys in a location separate from the CWSerenade application server. • Unlike the example folder location above, you should name the folder where you will store the key encryption key a name that does not represent the contents of the file. This path is not required if the security level setting is 1. The directory path can be a mapped drive on another machine as long as the mapped drive is always connected when the application server is running. For example: \\\\SERVER1\\KeyEncryptionKey\\ , where SERVER1 is the server’s name or IP address. If the folder in the directory path does not exist, you must create it before generating the encryption keys.

3/10/15 CWSerenade Server Configuration 27 CWSerenade 5.0

For more information: See the CWSerenade Data Security and Encryption Reference for more information on how to install credit card encryption.

Email Properties File

Setting Description

CWEMAIL_ The location of the folder containing the template files TEMPLATE_PATH used to generate HTML-based emails. The default location is: C:\\Serenade\\CWSerenade\\EmailTemplates\\ If You Use Multiple Application Servers Configuration server or primary application server: This is a shared directory on the local drive. Secondary application server: This is a mapped directory that points to the application server where the email templates reside. For example, where APP1 is the name or IP address of the application server where the email templates reside: //APP1\\C$\\Serenade\\CWSerenade\\EmailTemplates\\

See Setting up the Email Properties File on page 134 for more information on the additional settings in this file.

3/10/15 CWSerenade Server Configuration 28 CWSerenade 5.0

Setting Up a CWSerenade Test Environment

Purpose: To setup a CWSerenade test environment:

• Application server: This server contains the configuration files, reports, documents, and forms, and other settings required to run the CWSerenade application. It also provides the GUI interface for the users. This server is typically also used as the HornetQ server if your JMS provider is HornetQ. For your test environment, you should use a test application server that is separate from your production application servers. By using a separate application server for your production environment and test environment, you can ensure that the configuration files used for production and test remain separate. If your JMS provider is HornetQ, you need to create queues to transmit data between your CWSerenade test environment and another system’s test environment. • Database server: This server contains the CWSerenade database and any other database that you use to transmit data between CWSerenade and another application, such as Xstore. For your test environment, the CWSerenade database for your test environment can be located on the same server as your production database. Once you create the CWSerenade database for your test environment, you need to update the DBConfig Properties File on the test application server with the new database connection; see CWSerenade Environment Configuration . • CWIntegrate server: This server contains any sites that are used to transfer data between CWSerenade and another system. This server is typically also used as the MQ Server if your JMS provider is IBM WebSphere MQ. For your test environment, you must create a test site for any CWIntegrate sites that you use to send test data between your test environment and another system’s test environment. If your JMS provider is WebSphere MQ, you need to create queues to transmit data between your CWSerenade test environment and another system’s test environment.

3/10/15 CWSerenade Server Configuration 29 CWSerenade 5.0

Test Environment Illustration

3/10/15 CWSerenade Server Configuration 30 CWSerenade Environment Configuration

Purpose: This topic describes the setup required to configure a database connection for CWSerenade.

DBConfig Properties File

Use the dbconfig.properties file on the CWSerenade application server to configure database connection settings for CWSerenade. This file contains the database information required to connect to each CWSerenade database. You also define database information in the tomee.xml File .

When to update this file: The system updates this file automatically during the installation process. You will need to update this file and check the settings in the tomee.xml File if you change your database server, database name, or database login; otherwise, the information in this file should not be changed.

Location of file: This file is normally saved on the CWSerenade application server at C:\Serenade\server\conf\jenasysproperties\dbconfig.properties , where C: is the root drive of the CWSerenade application server.

To edit the file: You can review and update this file using a text editor such as WordPad. If you make any changes to the DBConfig Properties file, you must restart the SERENADE service (or the application server) before the changes take effect.

The settings in this file that you might wish to review or edit are explained below.

Setting Description

environment The name of the CWSerenade database environment. The delivered setting is CWSerenade Delivered Database . Change this setting to the name of your CWSerenade environment. db.machine.name The name of the database server where the CWSerenade database is located.

3/10/15 CWSerenade Environment Configuration 31 CWSerenade 5.0

Setting Description

db.url The connection information used to connect to the CWSerenade database: 1.db.url = jdbc:sqlserver://SERVERNAME:1433; DatabaseName=CWSerenade;selectMethod=direct;sendStr ingParametersAsUnicode=false where: • SERVERNAME = The name or IP address of the database server. • 1433 = The port used to connect to the database server. • CWSerenade = The name of the CWSerenade database. db.user.name The user ID used to connect to the CWSerenade database server. This should be cwi . db.password The user’s SQL Server password used to connect to the CWSerenade database server. The password entry here is encrypted. If you change the SQL Server password as part of your PCI standards, you must change this value and then restart CWSerenade. See Changing the Database Password for instructions.

3/10/15 CWSerenade Environment Configuration 32 Changing the Database Password

Purpose: Use these steps to update the password in the DBConfig Properties File and the tomee.xml File to match the current password for SQL Server.

Password encryption: For system security, the password entries in the dbconfig.properties file and the tomee.xml file need to be encrypted. The steps below show you how to use a utility to encrypt the password and automatically updates the files.

Note: If you have multiple application servers, you need to repeat the following steps on each server.

Before you start:

• Have the new password CWSerenade will use to connect to the database. • Make a backup copy of the dbconfig.properties file and the tomee.xml file. • Have all users log out of CWSerenade. • End the Serenade service.

A: Generate the encrypted passwords. 1. On the CWSerenade application server, advance to the C:\Serenade\CWSerenade\dbconfig folder, where C: is the default drive of the application server. 2. Double-click the runthis.bat file. A window opens for you to enter the database user ID:

3/10/15 Changing the Database Password 33 CWSerenade 5.0

3. Enter the user ID and click OK . A window opens for you to enter the database password:

Your entries automatically update the dbconfig.properties file and the tomee.xml file on the current application server.

Repeat the above steps on each application server, or copy the updated files to each additional application server.

When you are done: Start the Serenade service. Users can then log into CWSerenade.

3/10/15 Changing the Database Password 34 CWSerenade Application Configuration

Purpose: Use the cwdirectcp.properties file on the CWSerenade application server to define configuration settings, such as password settings, for the CWSerenade application server.

Jenasys properties file: You can review additional application settings, such as where the specific parts of the CWSerenade application are installed and how they should be run, in the Jenasys Properties File ; see Reviewing CWSerenade Application Settings in the Jenasys Properties File .

CWDirectCP Properties File

The system updates this file during the installation process; however, there are some settings, such as password settings, that you may wish to change to fit your configuration requirements.

Location of file: This file is normally saved on the CWSerenade application server at C:\Serenade\server\conf\cwdirectcpproperties\cwdirectcp.properties , where C: is the root drive of the CWSerenade application server.

To edit the file: You can review and update this file using a text editor such as WordPad, being careful not to change any of the settings except those indicated below.

If you make any changes to the CWSerenade properties file, you must select Change in Refresh System Properties (PROP) or stop and restart the Serenade service (or the application server) before the changes take effect.

Setting Description

CWDIRECTCP_VERSION The version of CWSerenade that the system is currently running. CWDIRECTCP_INSTALL The drive where CWSerenade has been installed. DRIVE Note: Make sure you do not add an extra space after your entry. For example, if the drive is C: , make sure you do not enter a space after the colon (:). CWDIRECTCP_UPLOAD The location on the CWSerenade application server _DIRECTORY where files are uploaded to CWSerenade. The delivered directory is C:\\serenade\\CWSerenade\\File\\Uploads , where C: is the root drive of the server.

3/10/15 CWSerenade Application Configuration 35 CWSerenade 5.0

Setting Description

CWDIRECTCP_FTP_ The local directory on the CWSerenade application FOLDER server where flat files are staged to transmit between the CWSerenade server and another server via FTP. • If you are in a Windows environment, when entering the directory path, make sure you use a double backward slash between folder names. For example, if the directory path is C:\serenade\CWSerenade\FTP , enter C:\\serenade\\CWSerenade\\FTP . • If you are in a Unix environment, when entering the directory path, make sure you use a double forward slash between folder names. For example, if the directory path is C:/serenade/CWSerenade/FTP , enter C://serenade//CWSerenade//FTP . The delivered directory is C:\\serenade\\CWSerenade\\FTP , where C: is the root drive of the server. Note: If this local directory does not already exist on the CWSerenade application server, the system dynamically creates it. CWDIRECTCP_FTP_ Defines the separator used in FTP commands that FOLDER_SEPARATOR specify a directory on the remote server. For example, the separator \\ is compatible in a Windows environment and the separator // is compatible in a Unix environment. If this setting is blank, the default used by the system is \\. CWDIRECTCP_ The location on the CWSerenade application server REPORTS_DIRECTORY where the system saves a copy of reports. The delivered directory is C:\\serenade\\CWSerenade\\Forms , where C: is the root drive of the server. Note: All backslashes in the directory path must be escaped (doubled \\ ). If you are Using Multiple Application Servers Configuration server or primary application server: This is a shared directory on the local drive. Secondary application server: This is a mapped directory that points to the configuration server or primary application server’s drive. For example: \\\\APP1\\serenade\\CWSerenade\\Forms , where APP1 is the configuration server or primary application server’s name or IP address. See Using Multiple CWSerenade Application Servers .

3/10/15 CWSerenade Application Configuration 36 CWSerenade 5.0

Setting Description

CWDIRECTCP_ The location on the CWSerenade application server DOCUMENTS_ where the system saves a copy of any documents (spool DIRECTORY files). The delivered directory is C:\\serenade\\CWSerenade\\Forms\\Documents , where C: is the root drive of the CWSerenade application server. Note: All backslashes in the directory path must be escaped (doubled \\ ). If you are Using Multiple Application Servers Configuration server or primary application server: This is a shared directory on the local drive. Secondary application server: This is a mapped directory that points to the configuration server or primary application server’s drive. For example: \\\\APP1\\serenade\\CWSerenade\\Forms\\Documen ts , where APP1 is the configuration server or primary application server’s name or IP address. See Using Multiple CWSerenade Application Servers . CWDIRECTCP_RETAIN_ Defines whether to retain the XML file for each generated REPORT_XML form. Retaining the XML files is useful for troubleshooting form contents, especially when implementing a new type of form; however, disk space can be a consideration if you are retaining many XML files. Y = The system retains the XML file for each generated form. Use this setting when you are initially testing a form and for troubleshooting purposes. N = The system does not retain the XML file for each generated form. Use this setting once you are done testing and troubleshooting a form in order to improve performance. See Forms Management (My Forms) for more information on forms.

3/10/15 CWSerenade Application Configuration 37 CWSerenade 5.0

Setting Description

Password Rules The following settings identify the requirements for user passwords, including the minimum and maximum length and any required numeric, uppercase, or special characters. When you change password rules: Your new password rules take effect for new users the next time you reboot CWSerenade or the server itself. However, your password rules do not prevent existing users from logging in using passwords created under the previous rules. The new rules apply only when you attempt to change user control record settings or change the password itself. To make sure a user will change the password to conform to the new rules upon the next login, set the user’s Password Expired field to a date that is earlier than the current date. For more information: See the User Configuration guide for more information. Note: These rules apply only to users who do not use LDAP authentication. CWDIRECTCP_ Indicates the minimum number of positions required for a MINIMUM_PASSWORD_ user’s password. Leave this setting blank if there is no LENGTH minimum. Example: Setting of CWDIRECTCP_MINIMUM_PASSWORD_LENGTH=6 Passwords must be six characters or longer sword = invalid password swordfish = valid password CWDIRECTCP_ Indicates if a numeral is required in a user’s password. REQUIRE_DIGIT_IN_ Y = a numeral is required. PASSWORD N or blank = a numeral is not required. Example: Setting of CWDIRECTCP_REQUIRE_DIGIT_IN_PASSWORD=Y Password must include a numeral swordfish = invalid password swordfish9 = valid password CWDIRECTCP_ Defines whether an uppercase (capital) letter is required REQUIRE_UPPERCASE_ in a user’s password. CHAR_IN_PASSWORD Y = an uppercase (capital) letter is required. N or blank = an uppercase letter is not required. Example: Setting of CWDIRECTCP_REQUIRE_UPPERCASE_CHAR_IN_PASSWORD=N Password must include an uppercase (capital) letter swordfish9 = invalid password Swordfish9 = valid password

3/10/15 CWSerenade Application Configuration 38 CWSerenade 5.0

Setting Description

CWDIRECTCP_ Indicates the maximum number of positions allowed in a MAXIMUM_PASSWORD_ user’s password. Leave this setting blank if there is no LENGTH maximum. Example: Setting of CWDIRECTCP_MAXIMUM_PASSWORD_LENGTH=12 Password must be no longer than 12 positions Swordfish9999 = invalid password Swordfish999 = valid password CWDIRECTCP_ Defines whether a special character is required in a REQUIRE_SPECIAL_ user’s password. CHAR_IN_PASSWORD Y = a special character is required. N or blank = a special character is not required. Special characters are: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~. Example: Setting of CWDIRECTCP_REQUIRE_SPECIAL_CHAR_IN_PASSWORD=Y Password must include a special character Swordfish999 = invalid password Swordfish99! = valid password CWDIRECTCP_ALLOW_ Defines whether a user is able to reuse previous PASSWORD_REUSE passwords. Y = users are able to reuse previous passwords. N = the system saves a record of previously used passwords to prevent their reuse. Example: Setting of CWDIRECTCP_ALLOW_PASSWORD_REUSE=N User cannot specify a password that has already been used. CWDIRECTCP_ Indicates the number of days after which a user’s PASSWORD_ password expires. EXPIRATION_DAYS *NO = you do not want user passwords to expire automatically. Example: Setting of CWDIRECTCP_PASSWORD_EXPIRATION_DAYS=30 When a user changes his or her password, the Password Expired date is reset to 30 days after the current date. For example, if a user changes her password on June 30, the Password Expired date is reset to July 30. The next time the user logs in after July 30, she will need to change her password.

Application Server Settings

3/10/15 CWSerenade Application Configuration 39 CWSerenade 5.0

Setting Description

CWDIRECTCP_ Defines the application server used to run CWSerenade. APPLICATION_SERVER JBOSS defaults, indicating that CWSerenade runs on the JBOSS application server. CWDIRECTCP_ALLOW_ Defines whether a periodic process can be scheduled on SCHEDULING_ON_THIS this CWSerenade application server. _SERVER • Y = Periodic processes can be scheduled on this server. You must also define a unique name for the server in the CWDIRECTCP_SERVER_NAME setting. • N = Periodic processes cannot be scheduled on this server. The system prevents you from creating a scheduled job on a server whose ALLOW_SCHEDULING_ON_THIS_SERVER setting is N. Note: If you change this setting from N to Y, you can continue to the next step of scheduling a job on this server. If the job you wish to schedule on this server is already scheduled to run on a different server, you will need to delete the scheduled job and recreate it to run on this server. See Defining the Job Schedule . To change this setting from Y to N:

1. Delete the scheduled jobs defined for the server. 2. Update the ALLOW_SCHEDULING_ON_THIS_SERVER setting for the server to N. 3. Restart the SERENADE service (or the application server) for the change to take effect. 4. Recreate the scheduled jobs on an application server whose ALLOW_SCHEDULING _ON_THIS_SERVER setting is set to Y. For more information: See Scheduling Jobs .

3/10/15 CWSerenade Application Configuration 40 CWSerenade 5.0

Setting Description

CWDIRECTCP_SERVER_ A unique name used to identify the server. This name NAME displays in the Server field on the Scheduled Jobs Screen so that you can identify where the scheduled periodic process will run. This setting is a way to identify the server; it does not have to be the actual name or IP address of the server. The name you enter cannot be greater than 20 positions.

This setting is required if you set the ALLOW_SCHEDULING_ON_THIS_SERVER setting to Y for more than one application server.

Important: If you change this setting on a server that is associated with any scheduled jobs, you MUST delete the scheduled jobs that were defined for this server, change the server name, and then recreate the scheduled jobs.

If you enable scheduling on only one application server, you can leave this setting blank; however, the Server field on the Scheduled Jobs Screen will remain blank for each scheduled job.

For more information: See Scheduling Jobs .

Link Settings The CWDIRECTCP_LINK_TEXT and CWDIRECTCP_LINK_URL settings allow you to add a link to all screens in CWSerenade (with the exception of the menu screens, the DITH and MMCM menu options, and the administrative screens such as Job Management and Document Management). Example: If you enter Go To Google in the CWDIRECTCP_LINK_TEXT setting and http://www.google.com in the CWDIRECTCP_LINK_URL setting, then each screen will have a link that reads Go To Google that will open a new browser window and launch the URL to the Google website. CWDIRECTCP_LINK_ Defines the text to display on the CWSerenade screens TEXT for the link. Example: If you enter Go To CNN , then each screen will have a link that reads Go To CNN . If you are Using Multiple Application Servers If you are using multiple application servers, you will need to update this setting on each server.

3/10/15 CWSerenade Application Configuration 41 CWSerenade 5.0

Setting Description

CWDIRECTCP_LINK_ Defines the URL to launch when a user clicks the link on URL a CWSerenade screen. Example: If you enter http://www.cnn.com , the system opens a new browser window and launches the URL to advance to the CNN website. If you are Using Multiple Application Servers If you are using multiple application servers, you will need to update this setting on each server.

Additional Settings CWDIRECTCP_USPS_ The location on the CWSerenade application server UPLOAD_FILE where the system should look for the City State data file when you use the Load USPS Code File (LZPS) to update postal code data. The delivered directory is C:\\serenade\\CWSerenade\\\\ctystate.txt , where C: is the root drive of the server. Note: • All backslashes in the directory path must be escaped (doubled \\ ). • MICROS recommends that you use a directory on your primary application server to load the ctystate.txt file. If you are Using Multiple Application Servers • If you are using multiple application servers, you need to update this setting on each server where you plan to use the Load USPS Zip Code File (LZPS) to update postal code data.

3/10/15 CWSerenade Application Configuration 42 CWSerenade 5.0

Setting Description

JOB_RETENTION_DAYS The number of days to store jobs and generated reports and forms before they are eligible for deletion. Each time you restart CWSerenade, the start up process deletes the following if they are older than the number of days specified here: • archived reports, including PDF files, XML files, and text files (but not the properties.properties files). These files are located in the QPRINT folder in C:\serenade\CWSerenade\serverconfig\outputq ueues , provided the config.dir setting in the Jenasys Properties Files is set to C:\CWSerenade . • job logs, typically located at C:\Serenade\server\log\jobs , where C: is the default drive of your server. • entries in the dbo.Jenasysjob table. This table is used to track submitted jobs. If you do not define the retention days, CWSerenade does not delete outdated documents. Note: • The deletion uses both the date and the time in determining whether to purge a document. For example, the current time is 7:00 a.m. and the JOB_RETENTION_DAYS is set to 30. If the report was created earlier than 7:00 30 days ago, it is eligible for deletion; otherwise, if it was created later than 7:00 30 days ago, it is not currently eligible. • Certain text files might have a later date than the related PDF files, and so might not be eligible to purge at the same time as the related PDF. For example, if you view a PDF file for a form a day after creating it, CWSerenade creates a text file logging that activity for the date when you viewed the PDF.

3/10/15 CWSerenade Application Configuration 43 CWSerenade 5.0

Setting Description

PICKS_IN_SPOOL_FILE The maximum number of pick slips in a single PDF document. The system continues to break pick slips into separate PDF documents using the criteria outlined under Sorting Pick Slips; however, if the number of pick slips in a PDF document reaches the number defined in the PICKS_IN_SPOOL_FILE setting, the system creates a new PDF document. Note: The system uses the PICKS_IN_SPOOL_FILE setting when printing pick slips through Streamlined Pick Slip Generation (WSPS) and Reprinting and Voiding Pick Slips (WVRP). Also, the system uses this setting when printing Gift Acknowledgements. Working with the pick slip form: Once the system finishes processing one pick slip PDF document, you can open and print the pick slips in the document using the Forms Management Screen ; you do not have to wait until all of the PDF documents for the pick slip generation run have generated. When printing pick slips, the system includes a PDF document sort number in the name of the document generated for the pick slip. For example, if the system generates two pick slip documents for warehouse 1, ship via priority 5, the system names the documents PICKG.KBOTTGER.20090804.103001456_001.PDF and PICKG.KBOTTGER.20090804.103001456_002.PDF , where PICKG is the name of the print program, KBOTTGER is the user ID of the person who generated the pick slips, 20090804.103001456 is the date and time stamp, and 001 and 002 is the PDF document sort number. See Form Naming Conventions for more information. Delivered setting: The delivered value is 250 picks. The system also uses 250 as the default value if this setting is blank or missing from the CWDirectCP Properties File . MICROS recommends setting this value to 250.

3/10/15 CWSerenade Application Configuration 44 CWSerenade 5.0

Setting Description

Setting for pick slip forms generated through the database: If you use a pick slip form that is generated directly through the database, set this value to 999999 . The INPUT_TYPE setting for your pick slip form in the FormTypeMapping Properties File indicates the means by which your pick slip printing program obtains the data to print on the pick slip. Valid values are: • XML (default) = The program uses the CWPickOut XML message to generate the pick slip. • DB = The program queries the database to generate the pick slip. This option is available only if your pick slip printing program supports it. Note: If no INPUT_TYPE is specified, the program uses the CWPickOut message. Example: When the PICKS_IN_SPOOL_FILE setting is 600 , the system creates the following spool files for a pick slip generation run: • 50 pick slips for warehouse 1, ship via priority 1 (PICKG.KBOTTGER.20090804.103000123_001.PDF ) • 300 pick slips for warehouse 1, ship via priority 5 (PICKG.KBOTTGER.20090804.103001456_001.PDF ) • 510 pick slips for warehouse 1, ship via priority 9 (PICKG.KBOTTGER.20090804.103003789_001.PDF ) • 75 pick slips for warehouse 2, ship via priority 1 (PICKG.KBOTTGER.20090804.103006912_001.PDF ) • 225 pick slips for warehouse 2, ship via priority 5 (PICKG.KBOTTGER.20090804.103007134_001.PDF ) • 25 pick slips for warehouse 2, ship via priority 9 (PICKG.KBOTTGER.20090804.103008112_001.PDF )

3/10/15 CWSerenade Application Configuration 45 CWSerenade 5.0

Setting Description

When the PICKS_IN_SPOOL_FILE setting is 250 , the system creates the following spool files for the same pick slip generation run: • 50 pick slips for warehouse 1, ship via priority 1 (PICKG.KBOTTGER.20090804.103000123_001.PDF ) • 250 pick slips for warehouse 1, ship via priority 5 (PICKG.KBOTTGER.20090804.103001456_001.PDF ) • 50 pick slips for warehouse 1, ship via priority 5 (PICKG.KBOTTGER.20090804.103001456_002.PDF ) • 250 pick slips for warehouse 1, ship via priority 9 (PICKG.KBOTTGER.20090804.103003789_001.PDF ) • 250 pick slips for warehouse 1, ship via priority 9 (PICKG.KBOTTGER.20090804.103003789_002.PDF ) • 10 pick slips for warehouse 1, ship via priority 9 (PICKG.KBOTTGER.20090804.103003789_003.PDF ) • 75 pick slips for warehouse 2, ship via priority 1 (PICKG.KBOTTGER.20090804.103006912_001.PDF ) • 225 pick slips for warehouse 2, ship via priority 5 (PICKG.KBOTTGER.20090804.103007134_001.PDF ) • 25 pick slips for warehouse 2, ship via priority 9 (PICKG.KBOTTGER.20090804.103008112_001.PDF ) Notice that the system creates multiple spool files for pick slips in warehouse 1, ship via priority 5 and for pick slips in warehouse 1, ship via priority 9, based on 250 in the PICKS_IN_SPOOL_FILE setting.

3/10/15 CWSerenade Application Configuration 46 CWSerenade 5.0

Setting Description

CHECK_AUTHS_IN_ Defines whether you can process Streamlined Pick Slip PICKS Generation (WSPS) when records exist for your company in the CC Authorization Transaction table. Valid values are: • Y or this setting does not exist = Before processing Streamlined Pick Slip Generation (WSPS), the system first looks for records in the CC Authorization Transaction table for the company for which you are generating pick slips. If records exist in the CC Authorization Transaction table, the system does not continue with pick slip generation and instead generates a Pick Authorization Error Report and a Serenade Support Notification . Review the records in the CC Authorization Transaction table to determine if you need to use the Reprocess Authorizations screen (RPAA) to reprocess authorizations and clear the records from the CC Authorization Transaction table. • N = The system allows you to run Streamlined Pick Slip Generation (WSPS) when records exist for your company in the CC Authorization Transaction table. Any records in the CC Authorization Transaction table will be resent for authorization. Note: MICROS does not deliver this setting in the properties file because the recommended setting is to prevent pick slip generation if records exist in the CC Authorization Transaction table; if you wish to turn off this feature, add the CHECKS_AUTHS_IN_PICKS setting to the CWDirectCP Properties File and set its value to N. END_ORDERIN_IJCT_O Indicates the action to take when the order API N_CONNECTION_ERRO generates an Invalid XML error response, since this R error can indicate a database connection problem. If this property is set to Y, when the order API generates an Invalid XML error response, it attempts to verify the database connection. If the attempt is unsuccessful, the system ends the ORDER_IN job and sends a support notification. Otherwise, if this property is set to N or blank or does not exist, the order API continues trying to process order messages in the event of an Invalid XML error response.

3/10/15 CWSerenade Application Configuration 47 CWSerenade 5.0

Setting Description

IMPORTS Defines the additional properties files that the CWSerenade application server should evaluate. Note: You should not change this setting. COMPARE_AND_ Defines how long to retain records in the able and E- DELETE_PURGE_DAYS Commerce Order Comparison table based on the Date deleted for the Deleted Order record and the Date processed for the E-Commerce Order Comparison record. When you restart the CWSerenade application server, the system purges records older than the number of days defined in the property. If you do not define a number of days in the COMPARE_AND_DELETE_PURGE_DAYS property, the system purges records once they are 30 days old.

3/10/15 CWSerenade Application Configuration 48 Configuring CWSerenade for TLS

TLS (Transport Layer Security) is a communication protocol to manage the security of message transmission between CWSerenade and an external system, allowing you to encrypt the data passed between the client browser and the server.

Use the following steps to configure CWSerenade to use TLS communication.

Important: You must perform these steps on each of your CWSerenade application servers.

• Create SerenadeTLS Folder • Verify Java Version and Update PATH Variable • Create a keystore and private Key • Create a Certificate Signing Request File or Sign the Security Certificate Using an External Resource • Export the Security Certificate To Make It Available to Install on Clients • Import the Security Certificate into the Java Repository • Configure Tomee to Allow TLS Communications • Logging in to the TLS Enabled CWSerenade Application Expired certificates: See Expired Security Certificate for instructions on removing a security certificate once it has expired.

Create SerenadeTLS Folder

Under the root drive where CWSerenade is installed, create a folder and name it SerenadeTLS.

Verify Java Version and Update PATH Variable

Verify that your current Java version is the same version used to run CWSerenade and add it to the PATH variable.

1. Advance to the following directory, where C: is the root directory where CWSerenade is installed:

C:\Serenade\server\java

3/10/15 Configuring CWSerenade for TLS 49 CWSerenade 5.0

2. The name of the folder located in the Java directory defines the version of Java you are using for CWSerenade.

Example: jre7 If more than one folder exists, take note of the name of the folder with the highest name. For example, If the directory contains jre7 and jre8, take note of jre8. 3. Add the following to the beginning of the PATH variable, where jre7 is the version of Java you noted in the previous step.

C:\Serenade\server\java\jre7\bin To modify the PATH variable, advance to Start > Control Panel > System and Security > System and select Advanced System Settings. On the System Properties window, click Environment Variables.

3/10/15 Configuring CWSerenade for TLS 50 CWSerenade 5.0

On the Environment Variables window, located the PATH variable and select Edit to modify its value.

3/10/15 Configuring CWSerenade for TLS 51 CWSerenade 5.0

4. Verify the class path for the Java security programs. To verify:

• Select Start > Run. At the Run window, type cmd and select OK to advance to a command prompt window. • At the command prompt window, type keytool and press Enter. The system displays a usage list:

Note: If you received an error instead of a usage list, make sure you updated the PATH variable as described in the previous step.

3/10/15 Configuring CWSerenade for TLS 52 CWSerenade 5.0

Create a keystore and private Key

1. Select Start > Run. At the Run window, type cmd and select OK to advance to a command prompt window. 2. At the command prompt window, type the following, where servername.domain.com is the fully qualified name of the server and 365 is the number of days the keystore is valid.

keytool -genkey -alias servername.domain.com -keyalg RSA -keystore c:\SerenadeTLS\tomcatkeystore -validity 365 Press Enter. 3. The system displays the following questions. Answer each question as indicated below.

• Keystore password: Enter serenade. • What is your first and last name: Enter the fully qualified server name. • What is the name of your organizational unit: Enter the name of your company. • What is the name of your organization: Enter the name of your company. • What is the name of your city or locality: Enter your city. • What is the name of your state or province: Enter your state or province. • What is the two-letter country code for this unit: Enter the two character country code (for example: US for United States, CN for Canada). The system displays what you entered and asks if it is correct. Enter yes.

Enter key password for servername.domain.com: Press Enter to accept the default. 4. To verify the keystore was created, advance to the following directory, where C: is the root drive where CWSerenade is installed.

C:\SerenadeTLS In the SerenadeTLS folder, you should see a file named tomcatkeystore. • To self-sign the security certificate, see Create a Certificate Signing Request File. • To use an external resource, such as Verisign or InstantTLS, to sign the security certificate, see Sign the Security Certificate Using an External Resource.

3/10/15 Configuring CWSerenade for TLS 53 CWSerenade 5.0

Create a Certificate Signing Request File

Use these steps if you wish to self-sign the security certificate; otherwise, see Sign the Security Certificate Using an External Resource.

Select Start > Run. At the Run window, type cmd and select OK to advance to a command prompt window.

At the command prompt window, type the following, where servername.domain.com is the fully qualified name of the server: keytool -certreq -keyalg RSA -alias servername.domain.com -file c:\SerenadeTLS\certreq.csr -keystore c:\SerenadeTLS\tomcatkeystore Press Enter. When the system prompts you for the keystore password, type serenade.

Sign the Security Certificate Using an External Resource

You can use an external resource, such as Verisign, to sign the security certificate. Follow the instructions provided by the resource to sign the certificate. To self-sign the security certificate, see Create a Certificate Signing Request File.

Make sure the signed certificate reply is named serenadecert.ser.

When you receive the signed certificate reply, put it in the following directory, where C: is the root drive where CWSerenade is installed:

C:\SerenadeTLS To install the certificate:

Select Start > Run. At the Run window, type cmd and select OK to advance to a command prompt window.

At the command prompt window, type the following, where servername.domain.com is the fully qualified name of the server: keytool -import -alias servername.domain.com -keystore c:\SerenadeTLS\tomcatkeystore -trustcacerts -file c:\SerenadeTLS\serenadecert.cer Press Enter.

When the system prompts you for the keystore password, type serenade.

Export the Security Certificate To Make It Available to Install on Clients

Select Start > Run. At the Run window, type cmd and select OK to advance to a command prompt window.

At the command prompt window, type the following, where servername.domain.com is the fully qualified name of the server:

3/10/15 Configuring CWSerenade for TLS 54 CWSerenade 5.0 keytool -export -keystore c:\SerenadeTLS\tomcatkeystore -file c:\SerenadeTLS\serenadecert.cer -alias servername.domain.com Press Enter. When the system prompts you for the keystore password, type serenade.

To verify that the certificate was exported, advance to the following directory, where C: is the root drive where CWSerenade is installed.

C:\SerenadeTLS In the SerenadeTLS folder, you should see a file named serenadecert.cer.

Import the Security Certificate into the Java Repository

You need to import the security certificate into the Java repository in order to enable the system to access web services via TLS.

Select Start > Run. At the Run window, type cmd and select OK to advance to a command prompt window.

At the command prompt window, type the following, where servername.domain.com is the fully qualified name of the server: keytool -import -keystore C:\ Serenade\server\java\jre7\lib\security\cacerts -file C:\SerenadeTLS\serenadecert.cer -alias servername.domain.com Press Enter.

When the system prompts you for the keystore password, type changeit and press Enter.

When the system asks whether to trust the certificate, type yes and press Enter.

The system displays a message indicating the certificate was added to the keystore.

3/10/15 Configuring CWSerenade for TLS 55 CWSerenade 5.0

Configure Tomee to Allow TLS Communications

1. Stop the SERENADE service if it is active; see Restarting CWSerenade. 2. Advance to the following directory, where C: is the root drive where CWSerenade is installed:

C:\Serenade\server\conf\server.xml 3. In the jboss-web.sar folder, locate the file server.xml. 4. Make a backup copy of the server.xml file in case you need to restore it. 5. Open the server.xml file in a text editor and locate the following section:

6. Make the following changes:

• Uncomment the block beginning with Connector port="8443" • Update the following attributes:

• keystoreFile="C:\serenade\tls\serenadekeystore • keystorePass="serenade" 7. The updated section should look like the following:

8. Save and close the server.xml file. 9. Advance to the following directory, where C: is the root drive where CWSerenade is installed:

C:\Serenade\server\conf\cwdirectcpproperties\cwdirectcp.properties 10. Make a backup copy of the cwdirectcp.properties file in case you need to restore it.

3/10/15 Configuring CWSerenade for TLS 56 CWSerenade 5.0

11. Verify that the GWT_RESOURCE_URI property is set to the following:

https://localhost:8443/SerenadeSeam/srs

Note: This property may not exist; if that is the case, you will need to add it. When TLS communication is turned off, this property setting looks like the following:

https://localhost:8080/SerenadeSeam/srs 12. Restart the SERENADE service.

Logging in to the TLS Enabled CWSerenade Application

Use the following URLs to log in to the TLS enabled CWSerenade application:

To access CWSerenade in https:\\servername.domain.com:8443\jenasys a browser window with where servername is the name of the CWSerenade address bar: application server To access CWSerenade in https:\\servername.domain.com:8443\CWSerenade.html a separate browser where servername is the name of the CWSerenade window: application server

Security certificate error: You will receive a web site security certificate error when you try to log in to CWSerenade if the browser does not trust the certificate. This may occur if you used a self-signed certificate, as described under Create a Certificate Signing Request File.

Example security certificate error screen:

3/10/15 Configuring CWSerenade for TLS 57 CWSerenade 5.0

Use the following steps to tell the browser to trust the certificate.

1. Click on Continue to this website (not recommended) to display the CWSerenade sign on screen. Notice that the URL displays in red and Certificate Error displays.

2. Click on Certificate Error to display the following window:

3/10/15 Configuring CWSerenade for TLS 58 CWSerenade 5.0

3. Click View certificates to advance to the Certificate window. At this window, click Install Certificate.

4. The system starts the Certificate Import Wizard. At the Welcome window, select Next.

3/10/15 Configuring CWSerenade for TLS 59 CWSerenade 5.0

5. At the Certificate Store window, select Place all certificates in the following store, click Browse, and select Trusted Root Certification Authorities.

6. Select Next until you reach the Completion window. At this window, select Finish.

3/10/15 Configuring CWSerenade for TLS 60 CWSerenade 5.0

7. If a Security Warning window displays, select Yes.

8. When a success notification displays, select OK.

9. Close and reopen the browser and enter the URL to log in to CWSerenade. You should no longer receive a security certificate error.

Expired Security Certificate

When a security certificate expires, use the following steps to remove the expired certificate.

1. Select Start > Run. At the Run window, type cmd and select OK to advance to a command prompt window.

At the command prompt window, type the following, where servername.domain.com is the fully qualified name of the server:

keytool -delete -alias servername.domain.com -keystore c:\SerenadeTLS\tomcatkeystore Press Enter. 2. Type the following, where jdk1.x.x_xx is the version of Java you are using:

keytool -delete -alias servername.domain.com -keystore c:\ Serenade\server\java\jre\lib\security\cacerts Press Enter.

3/10/15 Configuring CWSerenade for TLS 61 CWSerenade 5.0

3. Follow the previous instructions to apply a new certificate. See:

• Verify Java Version and Update PATH Variable • Create a keystore and private Key • Create a Certificate Signing Request File or Sign the Security Certificate Using an External Resource • Export the Security Certificate To Make It Available to Install on Clients • Import the Security Certificate into the Java Repository

3/10/15 Configuring CWSerenade for TLS 62 JMS (Java Message Service) Providers for CWSerenade

Purpose: You can use IBM WebSphere MQ or HornetQ to send messages between CWSerenade and other applications.

WebSphere MQ and HornetQ components:

WebSphere MQ HornetQ Description

Queue Manager Connection Factory Receives messages and puts them into the appropriate queue. Queues Queues An area where messages are stored so that they can be processed in sequential order (first in, first out). For HornetQ, queues are owned by a defined connection factory. For WebSphere MQ, queues are owned by a defined queue manager. MQ Explorer extensible JMS The application used to review and work console, such as with messages and queues. HermesJMS Message log Message log The CWSerenade MQ Message Log tracks XML and transactional messages generated or received by CWSerenade.

If you use a CWIntegrate site: If you send messages between CWSerenade and a CWIntegrate site, you must use WebSphere MQ. CWIntegrate runs on version 1.5 of Java and HornetQ requires version 1.6 of Java; because of this, some java objects are incompatible.

Data security: Regardless of which JMS provider you use, configure the JMS provider to use TLS 1.2 (Transport Layer Security) to secure sensitive data. Recommended queue manager or connection factory naming convention: MICROS recommends the following naming convention when creating a queue manager or connection factory:

SERVER-JMS where:

• SERVER = the name of the server where WebSphere MQ or HornetQ is installed.

3/10/15 JMS (Java Message Service) Providers for CWSerenade 63 CWSerenade 5.0

• JMS = defines whether this is a queue manager or factory connection (you are using WebSphere MQ or HornetQ). • QM = this is a queue manager for WebSphere MQ. • FC = this is a factory connection for HornetQ. Examples:

Example Name Indicates

SERENADE-QM This is a queue manager located on the SERENADE server. SERENADE-FC This is a connection factory located on the SERENADE server.

Recommended queue naming convention: To easily identify the purpose of a queue, MICROS recommends the following naming convention when creating a queue:

SERVER.PROCESS.DIRECTION.JMS where:

• SERVER = the name of the server where the JMS provider is installed. • PROCESS = the name of the CWSerenade process that sends or receives the message. • DIRECTION = the direction of the message. • IN = The message is inbound to CWSerenade. • OUT = The message is outbound from CWSerenade. • JMS = defines whether the queue is owned by a queue manager (you are using WebSphere MQ) or a connection factory (you are using HornetQ). • MQ = the queue is owned by a queue manager. • FC = the queue is owned by a connection factory. Examples:

Example Queue Name Indicates

SERENADE.RETURN_IN.IN.MQ The queue sends messages to the RETURN_IN IJCT job in CWSerenade. The queue is owned by a queue manager located on the SERENADE server.

3/10/15 JMS (Java Message Service) Providers for CWSerenade 64 CWSerenade 5.0

Example Queue Name Indicates

SERENADE.PICK_OUT.OUT.FC The queue sends messages from the PICK_OUT IJCT job in CWSerenade. The queue is owned by a connection factory located on the SERENADE server.

Switching JMS Providers

To switch from one JMS provider to another:

1. Install the JMS provider. 2. Configure the JMS provider; see: • IBM WebSphere MQ Configuration for information on configuring CWSerenade to use IBM WebSphere MQ to communicate with other applications. • HornetQ Configuration for information on configuring CWSerenade to use HornetQ to communicate with other applications. For more information: See Integration Layer Processes and Web Services in the Online Help for more information on the processes that send messages between CWSerenade and other applications.

3/10/15 JMS (Java Message Service) Providers for CWSerenade 65 HornetQ Configuration

Purpose: CWSerenade uses HornetQ to communicate with other applications.

HornetQ is an open source JMS (Java Message Service) provider developed by JBoss to support asynchronous, or JMS, messaging.

HornetQ or WebSphere MQ? You can use HornetQ or IBM WebSphere MQ to perform communication between CWSerenade and other applications when it is necessary to retrieve or place XML data on a server; see JMS (Java Message Service) Providers for CWSerenade for a comparison.

Viewing and working with HornetQ queues and messages: You can use an extensible JMS console, such as HermesJMS, to review and work with the queues and messages processed by HornetQ.

Message log: You can use the CWSerenade MQ Message Log to track XMLs and transactional messages generated or received by CWSerenade.

Configuring HornetQ for CWSerenade

To configure HornetQ for CWSerenade:

1. Install HornetQ on one of the CWSerenade application servers.The recommended version is hornet-2.0.0.GA, which you need to download from the HornetQ web site: http://hornetq.jboss.org/downloads.html . Note: MICROS recommends you install HornetQ on one of the CWSerenade application servers; however, you can install HornetQ on a separate server. 2. Configure CWSerenade to use HornetQ. See CWSerenade Property Settings for HornetQ , HornetQ Configuration File , and HornetQ Jar Files . 3. Create queues for the CWSerenade processes that send and receive messages with another system via queues; see Creating HornetQ Queues . 4. On each CWSerenade application server, install and configure HermesJMS, or some other extensible JMS console, to allow you to review and work with the messages processed by HornetQ. 5. When performing queue setup in CWSerenade, the MQ manager is the connection factory on the HornetQ server.

3/10/15 HornetQ Configuration 66 CWSerenade 5.0

HornetQ illustration

If HornetQ fails to deliver a message: If HornetQ fails to deliver a message, the message remains in the queue and HornetQ continues to try to deliver the message. See Troubleshooting HornetQ .

3/10/15 HornetQ Configuration 67 CWSerenade 5.0

CWSerenade Property Settings for HornetQ

• JMS Properties File Settings for HornetQ • JNDI Properties File for HornetQ Location of properties file: Typically, the CWSerenade properties files are saved in the C:\Serenade\server\conf\cwdirectcpproperties folder on the CWSerenade application server, where C: is the root directory of the server.

To edit a properties file: You can use a text editor such as WordPad to edit the file, being careful to only change the settings that are configurable.

Note: If you make a change to a properties file, you must select Change in Refresh System Properties (PROP) or stop and restart the Serenade service (or the application server) before the changes take effect.

JMS Properties File Settings for HornetQ

The following settings are required in the cwdirectcp_jms.properties file to enable HornetQ.

Setting Description

CWMQ_TARGET_ Enter 0. CLIENT CWMQ_WAIT_TIME Enter 0. CWMQ_JNDI_LOOKUP_ Enter /. NAME

JNDI Properties File for HornetQ

The following settings are required in the cwdirectcp_jndi.properties file to enable HornetQ.

Setting Description

CWMQ_JNDI_INITIAL_ Enter org.jnp.interfaces.NamingContextFactory . CONTEXT_FACTORY CWMQ_JNDI_PROVIDER Enter jnp://ServerName:1199 , where ServerName is _URL the name of the server where HornetQ is installed. CW_JDBC_PROVIDER Enter java:/CWDirectCPDS .

3/10/15 HornetQ Configuration 68 CWSerenade 5.0

HornetQ Configuration File

The HornetQ Configuration file contains configuration settings for HornetQ. In this file, you need to verify that the host setting contains the name of the server where HornetQ is installed and not local host .

Location of file: On the server where you have installed HornetQ, search for a file named hornetq-configuration.xml.

To edit the file: You can use a text editor such as WordPad to edit the file, being careful to only change the settings that are configurable.

Note: If you make a change to this file, you must stop and restart the HornetQ service.

Configuration Setting Description

connector name ="netty" Verify the value for param key="host" is the name of the param key="host" server where HornetQ is installed. Example: param key="host" value="SERAPP1" acceptor name="netty" Verify the value for param key="host" is the name of the param key="host" server where HornetQ is installed. Example: param key="host" value="SERAPP1"

3/10/15 HornetQ Configuration 69 CWSerenade 5.0

HornetQ Jar Files

The following files are required for HornetQ:

• hornetq-bootstrap.jar • hornetq-core.jar • hornetq-jboss-as-integration.jar • hornetq-jms.jar • hornetq-logging.jar • hornetq-transports.jar • jboss-jms-api.jar • jboss-mc.jar • jnpserver.jar • netty.jar Location of jar files: These jar files are located in the hornet-2.0.0.GA.zip file, which you can download from the sourceforge.net web site: http://sourceforge.net/projects/hornetq/files/ .

Copy these jar files from the lib folder in the hornet-2.0.0.GA.zip file and paste them to the C:\Serenade\server\custom-lib\ folder on the CWSerenade application server, where C: is the root directory of the server. If you are using multiple application servers, you must copy these jar files to each server.

3/10/15 HornetQ Configuration 70 CWSerenade 5.0

Creating HornetQ Queues

Use the following steps to create a queue for HornetQ.

Note: You can perform these steps while HornetQ and CWSerenade are running.

1. On the server where you have installed HornetQ, search for a file named hornetq-jms.xml. Open this file in a text editor. 3. Locate the section of the hornetq-jms.xml file.

Verify the following:

• connection-factory name: the name of the connection factory used by CWSerenade to receive messages and put them into the appropriate queue. MICROS recommends naming the connection factory SERVER- JMS , where SERVER is the name of the server where HornetQ is installed and JMS indicates whether this is a queue manager (WebSphere MQ) or factory connection (HornetQ). Example: If you have installed HornetQ on a server named SERAPP1 , the connection factory name would be SERAPP1-FC . • connector-ref connector-name: should be set to netty . • entry name: the name of the connection factory used by CWSerenade to receive messages and put them into the appropriate queue. This entry should match the entry for the connection-factory name setting. 4. Locate the section of the hornetq-jms.xml file. 5. At the end of the section, add a new entry for each queue you wish to create. Each queue entry should contain the following, where:

• SERVER is the name of the server where HornetQ is installed, • PROCESS is the name of the process or IJCT job that uses the queue, • DIRECTION indicates the direction of the message ( IN = to CWSerenade; OUT = from CWSerenade), and • FC indicates the queue is used by the HornetQ factory connection ( MQ = the queue is used by IBM WebSphere MQ).

Example: To create a queue for the Outbound Pick (CWPickOut) message, name the queue SERENADE.PICK_OUT.OUT.FC .

3/10/15 HornetQ Configuration 71 CWSerenade 5.0

6. Once you have added an entry for each queue you wish to create, save the file. 7. Define the queue for the CWSerenade process that uses it. See XML Messages for a list of messages processed by CWSerenade.

Note: In order for the CWSerenade process to start using the new queue, you will need to stop and restart the process.

3/10/15 HornetQ Configuration 72 CWSerenade 5.0

Troubleshooting HornetQ

If communication errors occur:

• Check the CWSerenade MQ Message Log to confirm the message generated successfully and no error message was logged. • Check the HornetQ server and boot logs for any errors. When troubleshooting: • Compare the log that was generated for an unsuccessful load with a log that was generated for a successful load to see if there are any discrepancies. • In the server log, take note of the last queue registered and verify that the queue is the last queue defined. If the queue is not the last queue defined, review the details of the queue to determine if it is set up correctly or if messages are getting stuck in the queue. • Verify that the HornetQ service is started. To start the HornetQ service: • Advance to the Services window by selecting Control Panel > Administrative Tools > Services . • Highlight the HornetQ service; right-click, and select Start .

Note: The status of the HornetQ service changes to Started immediately; however, if you have a large number of messages in the queues, the HornetQ server may take a while to start. To verify that the HornetQ server is available, look for a message similar to the following in the server log: HornetQ Server version...started .

• Verify the host settings in the HornetQ Configuration file; see HornetQ Configuration File . • Verify your connection factory and queue settings in the hornetq-jms.xml file; see Creating HornetQ Queues .

3/10/15 HornetQ Configuration 73 CWSerenade 5.0

• Verify the configuration settings in the JMS Properties file and JNDI Properties file; see JMS Properties File Settings for HornetQ . • Verify the jar files required for HornetQ are located in the C:\Serenade\server\custom-lib\ folder on the CWSerenade application server, where C: is the root directory of the server; see HornetQ Jar Files . • Verify your queue settings for the CWSerenade job that processes the message; see Integration Layer Processes and Web Services in the Online Help.

3/10/15 HornetQ Configuration 74 IBM WebSphere MQ Configuration

Purpose: CWSerenade uses IBM WebSphere MQ to communicate with other applications.

HornetQ or WebSphere MQ? You can use HornetQ or IBM WebSphere MQ to perform communication between CWSerenade and other applications when it is necessary to retrieve or place XML data on a server; see JMS (Java Message Service) Providers for CWSerenade for a comparison.

Message log: You can use the CWSerenade MQ Message Log to track XMLs and transactional messages generated or received by CWSerenade.

Configuring WebSphere MQ for CWSerenade

To configure WebSphere MQ for CWSerenade, all users must be logged out of CWSerenade and the SERENADE service must be shut down.

1. Install a full licensed copy of IBM WebSphere MQ on a separate server, such as the CWIntegrate server. 2. Configure CWSerenade to use WebSphere MQ. See Context.XML File , WebSphere MQ Jar Files and CWSerenade Property Settings for WebSphere MQ . 3. Add the user with authority to run the SERENADE service to the MQM user group. After performing these steps, CWSerenade should be able to write to and read from an IBM WebSphere MQ queue on the MQ manager you supplied. You can verify this by setting up queues and sending a test message using any integration layer process configured for MQ communication in Work with Integration Layer Processes (IJCT). See Integration Layer Processes and Web Services in the Online Help for a list of integration layer processes that use MQ communication.

Note:

• Create all MQ queues as local queues on the CWIntegrate server. You do not need to create any remote queues, transmission queues, sender channels, or receiver channels. • When performing MQ setup in CWSerenade, the MQ manager is the MQ manager on the MQ server.

3/10/15 IBM WebSphere MQ Configuration 75 CWSerenade 5.0

WebSphere MQ Client Illustration

If MQ fails to deliver a message: Because CWSerenade uses the MQ Client, if MQ fails to deliver a message, the message is cleared from the queue and MQ does not continue to try to deliver the message. You will need to re-send the message.

3/10/15 IBM WebSphere MQ Configuration 76 CWSerenade 5.0

Context.XML File

Use the following steps to configure CWSerenade JMS settings on the CWSerenade application server and identify the server running MQ server.

If you use more than one application server, you need to complete these steps on each server.

1. On the CWSerenade application server, advance to C:\Serenade\server\conf . 2. In the conf folder, locate and make a backup copy of the context.xml file. 3. Open the context.xml file using a text editor. 4. Locate the following section:

5. Update the following values:

4. Restart the service.

CWDirect Log

Use this log to review messages generated during processing of the CWSerenade application.

3/10/15 Logs 437 CWSerenade 5.0

Name of log: The File setting in the Log4j XML File defines the name of the CWDirect log. You should not change this setting in order to avoid confusion when troubleshooting.

Location of file: This file is normally saved on the CWSerenade application server at C:\Serenade\server\log\CWDirect.log, where C: is the root drive of the server.

To review the file: You can review the contents of this file using a text editor such as WordPad.

Cleared when? If the Append value in the Log4j XML File is set to false, this file is cleared each time you restart the application; otherwise, if the value is set to true, the file is not cleared. See the Log4j XML File for information on configuring this file.

Special characters in the CWOrderIn message: If you pass a special character in the Header element of the Inbound Order XML message (CWOrderIn), the system does not process the message and logs the error in the CWDirect log.

Example:

If you pass Mary&Joe in the sold_to_fname tag, an error message similar to the following is in the CWDirect log:

2008-06-18 11:25:59,934 99184497 ERROR [STDERR] (43049:) (LoggerStream.java:152) [Fatal Error] :1:214: The reference to entity "Joe" must end with the ';' delimiter.

If you pass Mary& in the sold_to_fname tag, an error message similar to the following is in the CWDirect log:

2008-06-18 11:10:29,315 98253878 ERROR [STDERR] (43049:) (LoggerStream.java:152) [Fatal Error] :1:110: The entity name must immediately follow the '&' in the entity reference. Email errors: If the mail.debug setting in the Email Properties File Contents is true, the system includes error messages about email generation in the CWDirect log. For example, if a program defined for a periodic process is not a valid program, an error message similar to the following is in the log:

2008-06-20 16:08:44,868 169401020 ERROR [JENASYS] (43298:) (JenasysJob.java:307) execute(): com.mincron.framework.BusinessLogicException: Program name=[Xx123456] not found.

2008-06-20 16:08:44,868 169401020 ERROR [JENASYS] (43298:) (JenasysJob.java:699) run(): Job status change to [MSG]. execute(): com.mincron.framework.BusinessLogicException: Program name=[Xx123456] not found. In addition, the system generates a Serenade Support Notification indicating the job has been placed in MSG status due to an error during processing; see CWSerenade Support Notifications for more information.

3/10/15 Logs 438 CWSerenade 5.0

Errors for submitted jobs: To see if the system has written a log message for an error that occurred during a submitted job, search for the Job number displayed at the Job Management screen. For example, the following message indicates a problem with submitted job 3133:

2014-11-20 14:14:12,852 ERROR [JENASYS] (197213%Thu Nov 20 14:14:11 EST 2014) - MonitorOutputQueues- processServiceRequest: could find/load properties filr for the queue = [QPRINT] RF labels: When you print an RF label, the system includes a description of the label information in the CWDirect log.

If an error occurs when you are printing RF labels, the system includes an error message about the RF label in the CWDirect log. For example, if an error occurs when the system tries to print an RF LPN label, an error message similar to the following is in the log:

2008-09-16 10:17:16,578 339281741 ERROR [APP] (http-0.0.0.0-8080-1:) (CWLog.java:57) Error occurred while printing LPN label:null To correct the error, check the system control values related to printing RF labels and the settings defined in the LabelPrinter Properties file.

3/10/15 Logs 439 CWSerenade 5.0

CWSerenade Application Logs

Purpose: Use the following logs to review the processing that occurred on the CWSerenade application server.

• CWSerenade MQ Message Log • CWSerenade Application Log • CWSerenade Response Log • CWSerenade Trace Log • CWSerenade Manifest Log • CWSerenade Order Log • CWSerenade PayPal Log • Cybersource Log • User Exit/Edit Point (UEP) Log • Alert Log • IntegrationOrder (ChannelAdvisor) Log • Relate (Loyalty) Log • Locate Log

Location of CWSerenade Application Logs

The CW_LOG_DIR setting in the Logging Properties File defines the directory path on the CWSerenade application server where the logs are located.

3/10/15 Logs 440 CWSerenade 5.0

The delivered directory is C:\CWSerenade\Logs , where C: is the root drive of the CWSerenade application server.

If you use multiple application servers:

• Primary application server: The directory is on the local drive. • Secondary application server: The directory is a mapped directory that points to the primary application server’s drive. For example: \\\\APP1\\CWSerenade\\Logs , where APP1 is the primary application server’s name or IP address. See Using Multiple CWSerenade Application Servers on page 16.

Logging Level

The LOG_LEVEL in the Logging Properties File defines the level of detail to include in the log.

• ALL = Include all levels of information in the log, including debug statements, informational statements, warnings, errors, and fatal statements. This is the most detailed level of logging. • DEBUG = Include debug, or detailed informational event statements in the log, as well as informational, warning, error, and fatal statements.

3/10/15 Logs 441 CWSerenade 5.0

• INFO = Include informational statements in the log, as well as warning, error, and fatal statements. Do not include debug statements in the log. • WARN = Include warning statements in the log, as well as error and fatal statements. Do not include debug or informational statements in the log. • ERROR = Include error, or serious issue, statements and fatal statements in the log. Do not include debug, informational, or warning statements in the log. • FATAL = Include fatal statements on actions that cause the application to abort in the log. Do not include debug, informational, warning, or error statements in the log. This is the highest level of logging. • OFF = Do not create a log. Logging Level Illustration:

Archived Logs

The MAXBACKUP_DAYS setting in the Logging Properties file defines the number of days the system stores a backup copy of the log before deleting. For example, if the MAXBACKUP_DAYS setting is set to 30 , the system stores a backup copy of the log for 30 days before deleting it.

When is a log archived? Each day at midnight, the system archives the current log, adding a zip file extension and date to the log name. For example, if the current date is 02/05/2008, the system archives the APP.log, renaming the file from APP.log to APP.2008-02-05.log.zip.

Note: The system does not create a new log until activity occurs to write to the log. For example, the system does not create a new APP.log until application activity

3/10/15 Logs 442 CWSerenade 5.0

occurs. The LOG_LEVEL determines when the system writes a message to the APP.log.

Logging Properties File

Use the cwdirectcp_logging.properties file to define the type of information CWSerenade includes in the CWSerenade application logs.

Location of file: This file is normally saved on the CWSerenade application server at C:\Serenade\server\conf\cwdirectcpproperties cwdirectcp_logging.properties , where C: is the root drive of the server.

To edit the file: You can use a text editor such as Wordpad to edit the file, being careful not to change any of the settings except those indicated below.

If you make any changes to the logging properties file, your changes do not go into effect until:

• Change to a property that controls a log file name, retention days, logging level or maximum backup days: you stop and restart the application server • Change to any other logging properties: you: • select Change in Refresh System Properties (PROP) , or

3/10/15 Logs 443 CWSerenade 5.0

• stop and restart the Serenade service • stop and restart the application server

Setting Description

CW_LOG_DIR The directory path on the CWSerenade application server where the logs are located. The delivered directory is C:\\serenade\\CWSerenade\\Logs , where C: is the root drive of the server. Note: All backslashes in the directory path must be escaped (doubled \\ ). If you Use Multiple Application Servers Primary application server: This is a directory on the local drive. Secondary application server: This is a mapped directory that points to the primary application server’s drive. For example: \\\\APP1\\serenade\\CWSerenade\\Logs , where APP1 is the primary application server’s name or IP address. See Using Multiple CWSerenade Application Servers on page 16. CW_LOG_BACKUP_ The file extension added to backup copies of the log file. PATTERN The system creates a backup copy of the log file for each day, using the date format from the CW_LOG_DATE_PATTERN setting and file extension from the CW_LOG_BACKUP_PATTERN setting. For example, for the APP.log file, the system names the backup copy APP.YYYY-DD-MM.log.zip . The delivered setting is .zip . Note: The file extension must be lower case. CW_LOG_DATE_ The date format for backup copies of the log file. PATTERN The system creates a backup copy of the log file for each day, using the date format from the CW_LOG_DATE_PATTERN setting and file extension from the CW_LOG_BACKUP_PATTERN setting. For example, for the APP.log file, the system names the backup copy APP.YYYY-DD-MM.log.zip . The delivered setting is .%d{yyyy-MM-dd}.log .

3/10/15 Logs 444 CWSerenade 5.0

Setting Description

CW_LOG_DATAQ Defines whether the system includes messages written to data queues in the log. Valid values: true = The system includes messages written to data queues in the log. false = The system does not include messages written to data queues in the log. LOG_RETENTION_DAYS The number of days to store the CWDirect Log before it is eligible for deletion. Each time you restart CWSerenade, it deletes archived copies of the CWDirect log that are older than the number of days indicated here. If you do not specify the number of retention days, logs are eligible for deletion after 30 days. Note: The log deletion uses both the date and the time in determining whether to purge a log. For example, the current time is 7:00 a.m. and the LOG_RETENTION_DAYS is set to 30. If the log was created earlier than 7:00 30 days ago, it is eligible for deletion; otherwise, if it was created later than 7:00 30 days ago, it is not currently eligible.

MQ Message Log Use this log to track XML and transactional messages generated or received by CWSerenade that are not tracked in the CWSerenade Application Log , CWSerenade Manifest Log , CWSerenade Order Log , or CWSerenade Trace Log . You can use this file to confirm that you are receiving or generating messages correctly, to isolate communication problems, or to recover information. MQ_FILE_NAME The name of the log that stores XML and transactional message information. The recommended setting is Message.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2 , rename the Message log on each server to MSGSERVER1.log and MSGSERVER2.log . MQ_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level .

3/10/15 Logs 445 CWSerenade 5.0

Setting Description

MQ_MAXBACKUP_DAYS The number of days to store a backup copy of a log before deleting it. See Archived Logs . Example: To retain a month’s worth of logs, set this field to 30 . The system deletes any log file older than 30 days.

Job Log This log is not currently implemented.

Application Log Use this log to track the activity performed in the CWSerenade application, such as: • the processing that occurs in the CWSerenade job scheduler • email notification processing • when a user creates, changes, or deletes a record in CWSerenade • any errors that occur when printing RF labels APP_FILE_NAME The name of the log that stores application information. The delivered setting is APP.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2 , rename the APP log on each server to APPSERVER1.log and APPSERVER2.log . APP_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level . APP_MAXBACKUP_ The number of days to store a backup copy of a log DAYS before deleting it. See Archived Logs . Example: To retain a month’s worth of logs, set this field to 30 . The system deletes any log file older than 30 days.

Response Log Use this log to review when a job required user intervention in order to proceed. A job may require user intervention if: • an error occurs during processing • the job sends transactions to another system, and communication failures occur before the transmission completes The types of job that require user intervention: • stored value card (activation, balance inquiry, or authorization reversal) • authorization (batch only, for all card types) • deposit

3/10/15 Logs 446 CWSerenade 5.0

Setting Description

RESP_FILE_NAME The name of the log that stores response information. The delivered setting is RESP.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2 , rename the RESP log on each server to RESPSERVER1.log and RESPSERVER2.log . RESP_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level . RESP_MAXBACKUP_ The number of days to store a backup copy of a log DAYS before deleting it. See Archived Logs . Example: To retain a month’s worth of logs, set this field to 30 . The system deletes any log file older than 30 days.

Trace Log Use this log to review internal messages about CWSerenade application processing. Typically, you review this log only if the contents of the CWSerenade Application Log did not help you. If the logging level is set to DEBUG , this log also contains transactional messages passed between CWSerenade and Paymentech when you are using the Paymentech Point-to-Point Integration. TRACE_FILE_NAME The name of the log that stores trace information. The delivered setting is TRACE.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2 , rename the TRACE log on each server to TRACESERVER1.log and TRACESERVER2.log . TRACE_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level . TRACE_MAXBACKUP_ The number of days to store a backup copy of a log DAYS before deleting it. See Archived Logs . Example: To retain a month’s worth of logs, set this field to 30 . The system deletes any log file older than 30 days.

3/10/15 Logs 447 CWSerenade 5.0

Setting Description

Manifest Log Use this log to review the messages between CWSerenade and the PC manifest station. You can use this log to confirm that communication between CWSerenade and the PC manifest station is working correctly, to isolate communication problems, or to recover information. Any errors that occur during processing are also in this log. MANIFEST_FILE_NAME The name of the log that stores manifesting information. The delivered setting is MANIFEST.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2 , rename the MANIFEST log on each server to MANIFESTSERVER1.log and MANIFESTSERVER2.log . MANIFEST_LOG_LEVEL Defines the level of detail included in the log. See Logging Level . MANIFEST_ The number of days to store a backup copy of a log MAXBACKUP_DAYS before deleting it. See Archived Logs . Example: To retain a month’s worth of logs, set this field to 30 . The system deletes any log file older than 30 days.

Order Log Use this log to review the messages between an external system and CWSerenade through the Generic Order Interface (Order API). You can use this log to confirm that communication between the external system and CWSerenade is working correctly, to isolate communication problems, or to recover information. ORDER_FILE_NAME The name of the log that stores order API information. The delivered setting is ORDER.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2 , rename the ORDER log on each server to ORDERSERVER1.log and ORDERSERVER2.log . ORDER_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level . ORDER_MAXBACKUP_ The number of days to store a backup copy of a log DAYS before deleting it. See Archived Logs . Example: To retain a month’s worth of logs, set this field to 30 . The system deletes any log file older than 30 days.

3/10/15 Logs 448 CWSerenade 5.0

Setting Description

Locate Log Use this log to review the messages between CWSerenade and Locate when you use the Order Broker integration. You can use this log, in addition to Locate’s logs, to review data passed between the two systems. LOCATE_FILE_NAME The name of the log that tracks Locate message activity. The delivered setting is ORDER.log . LOCATE_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level . LOCATE_MAXBACKUP_ The number of days to store a backup copy of a log DAYS before deleting it. See Archived Logs . Example: To retain a month’s worth of logs, set this field to 30 . The system deletes any log file older than 30 days.

PayPal Log Use this log to review the messages between CWSerenade and PayPal when you use the PayPal Direct Connection Integration. You can use this log to confirm that communication between CWSerenade and PayPal is working correctly, to isolate communication problems, or to recover information. Any errors that occur during processing are also in this log. PAYPAL_FILE_NAME The name of the log that stores PayPal transaction information. The delivered setting is PAYPAL.log . If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2 , rename the PAYPAL log on each server to PAYPALSERVER1.log and PAYPALSERVER2.log . PAYPAL_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level . PAYPAL_MAXBACKUP_ The number of days to store a backup copy of a log DAYS before deleting it. See Archived Logs . Example: To retain a month’s worth of logs, set this field to 30 . The system deletes any log file older than 30 days.

User Exit Point Log Use this log to review the parameters passed for user exit points you have set up through the Working with User Exit Point (WUEP) option. See the User Exit/Edit Point (UEP) Log for more information.

3/10/15 Logs 449 CWSerenade 5.0

Setting Description

UEP_FILE_NAME The name of the log that stores user exit point activity information. The delivered setting is USER_EXIT_POINT.log. If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2, rename the user exit point log on each server to USER_EXIT_POINT1.log and USER_EXIT_POINT2.log. UEP_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level. UEP_MAXBACKUP_ The number of days to store a backup copy of a log DAYS before deleting it. See Archived Logs. Example: To retain a month’s worth of logs, set this field to 30. The system deletes any log file older than 30 days.

Customer API Log Use this log to review the messages between CWSerenade and XStore when you use the Generic Customer API. You can use this log to confirm that communication between CWSerenade and XStore is working correctly, to isolate communication problems, or to recover information. Any errors that occur during processing are also in this log. Note: Messages between CWSerenade and any other system using the Generic Customer API are logged in the MQ Message Log. CUST_FILE_NAME The name of the log that stores Customer API transaction information. The delivered setting is CUST.log. If you Use Multiple Application Servers If you use multiple application servers, rename the log so that it identifies the server where the log is located. For example, if you use two application servers named SERVER1 and SERVER2, rename the CUST log on each server to CUSTSERVER1.log and CUSTSERVER2.log. CUST_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level. CUST_MAXBACKUP_ The number of days to store a backup copy of a log DAYS before deleting it. See Archived Logs. Example: To retain a month’s worth of logs, set this field to 30. The system deletes any log file older than 30 days.

3/10/15 Logs 450 CWSerenade 5.0

Setting Description

Alert Log Use this log to review the alerts generated by the Job Monitor Status (WJMO) menu option; see Monitoring Jobs. Note: The system updates this log only if the ALLOW_JOB_MONITOR and TRACK_ALERTS_IN_LOG settings in the Monitor Properties file are set to Y. These settings should only be set to Y for the application server that allows job scheduling; see How to Schedule a Job. See the Alert Log for more information. ALERT_FILE_NAME The name of the log that stores Job Monitor Alert information. The delivered setting is ALERT.log. ALERT_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level. ALERT_MAXBACKUP_ The number of days to store a backup copy of a log DAYS before deleting it. See Archived Logs. Example: To retain a month’s worth of logs, set this field to 30. The system deletes any log file older than 30 days.

IntegrationOrder (ChannelAdvisor) Log Use this log to review activity related to integration with ChannelAdvisor. Note: The system updates this log only if the you use the ChannelAdvisor integration. See ChannelAdvisor Integration Overview for background. See the IntegrationOrder (ChannelAdvisor) Log for more information. INTEGRATIONORDER_ The name of the log that tracks activity related to the FILE_NAME ChannelAdvisor integration. The delivered setting is IntegrationOrder.log. INTEGRATIONORDER_ Defines the level of detail to include in the log. See LOG_LEVEL Logging Level. INTEGRATIONORDER_ The number of days to store a backup copy of a log MAXBACKUP_DAYS before deleting it. See Archived Logs. Example: To retain a month’s worth of logs, set this field to 30. The system deletes any log file older than 30 days.

Relate (Loyalty) Log Use this log to review activity related to the loyalty integration with Relate. Note: The system updates this log only if the you use the Relate Loyalty integration. See Relate Loyalty Integration for background. See the Relate (Loyalty) Log for more information. RELATE_FILE_NAME The name of the log that tracks activity related to the Relate Loyalty integration. The delivered setting is RELATE.log.

3/10/15 Logs 451 CWSerenade 5.0

Setting Description

RELATE_LOG_LEVEL Defines the level of detail to include in the log. See Logging Level . RELATE_MAXBACKUP_ The number of days to store a backup copy of a log DAYS before deleting it. See Archived Logs . Example: To retain a month’s worth of logs, set this field to 30 . The system deletes any log file older than 30 days.

CWSerenade MQ Message Log

Use this log to track XML and transactional messages generated or received by CWSerenade, with the exception of those captured in the CWSerenade Manifest Log , the CWSerenade Order Log , and the tax messages captured in the CWSerenade Trace Log . You can use this file to confirm that you are receiving or generating messages correctly, to isolate communication problems, or to recover information.

The MQ Message Log settings in the Logging Properties File define the name of the log, the level of detail to include in the log, and the number of days to store a backup copy of the log before deleting it.

To review the file: You can use a text editor such as Wordpad to review the file.

Data security: For data security, CWSerenade masks credit card information in this log.

Successful message: A message similar to the following indicates if the transmission was successful:

08:33:54,228 INFO MQ - Out Message:

A message similar to the following indicates if the transmission failed:

If you are using WebSphere MQ:

14:42:48,724 ERROR MQ - Cwmqget -Queue Manager: QM_ssinger Queue:ORDERDATAQ Error Message: MQ Object not found If you are using HornetQ:

3/10/15 Logs 452 CWSerenade 5.0

08:44:56,013 ERROR MQ - Cwmqput -Queue Manager:CWDIRECTCP-FC Queue:CPQA.CWDIRECTCPQA.PICKOUT.F Error Message: JMSException message :There is no queue with name CPQA.CWDIRECTCPQA.PICKOUT.F

A message similar to the following indicates the MQ Manager is down and needs to be restarted:

If you are using WebSphere MQ:

09:08:19,939 ERROR MQ - Cwmqput -Queue Manager: QM_CWINTEGRATE_PD3 Queue:PD3.CWDIRECTCPDEV.RETURN_OUT Error Message:null or

12:51:07,721 INFO MQ - Cwmqput -Queue Manager:QM_CWINTEGRATE_PD3 Queue:PD3.CWDIRECTCPDEV.RETURN_OUT Message: If you are using HornetQ:

08:38:28,192 ERROR MQ - Cwmqput -Queue Manager:CWDIRECTCP-FC Queue:CPQA.CWDIRECTCPQA.PICKOUT.FC Error Message:null

CWSerenade Application Log

Use this log to track the activity performed in the CWSerenade application, such as:

• the processing that occurs in the CWSerenade job scheduler • any errors that occur during email notification processing • when a user creates, changes, or deletes a record in CWSerenade • when an RF label is printed and the information included on the label • any errors that occur when printing RF labels • any errors that occur during the Relate Sales integration • the CWEmailOut message • the processing that occurs by the Long Running Jobs Monitor The Application Log settings in the Logging Properties File defines the name of the APP.log, the level of detail to include in the log, and the number of days the system stores a backup copy of the log before deleting it.

To review the file: You can use a text editor such as Wordpad to review the file.

Email error: The following error indicates an attempt to send an email failed. In this example, the mail server rejected the email request from port 25. This error usually occurs due to virus-checker rejecting the remote mail requests.

13:06:28,586 ERROR APP - Error in CWSendMail.sendMessage(). Could not send email. Here is the exception: javax.mail.SendFailedException: Sending failed;

3/10/15 Logs 453 CWSerenade 5.0 nested exception is: class javax.mail.MessagingException: Could not connect to SMTP host: CWIEX1, port: 25; nested exception is: java.net.SocketException: Software caused connection abort: connect RF label error: When you print an RF label, the system includes a description of the label information in the CWDirect Log .

If an error occurs when you are printing RF labels, the system includes an error message about the RF label in the Application log. For example, if a error occurs when the system tries to print an RF LPN label, an error message similar to the following is in the log:

2008-09-16 10:17:16,578 339281741 ERROR [APP] (http-0.0.0.0-8080-1:) (CWLog.java:57) Error occurred while printing LPN label:null To correct the error, check the system control values related to printing RF labels and the settings defined in the LabelPrinter Properties file.

CWSerenade Response Log

Use this log to review when a job required user intervention in order to proceed. A job may require user intervention if:

• an error occurred during processing • the job is used to send transactions to another system and communication failures occur before the transmission completes The types of job that require user intervention:

• stored value card (activation, balance inquiry, or authorization reversal) • authorization (batch only, for all card types) • deposit The Response Log settings in the Logging Properties File defines the name of the RESP.log, the level of detail included in the log, and the number of days the system stores a backup copy of the log before deleting it.

To review the file: You can use a text editor such as Wordpad to review the file.

Sample messages:

Message Written When

Deposits - Response required CWSerenade generates a Response Required for job. E-Mail sent email, indicating a job requires user intervention. to:[email protected]; In this example, Deposits is the job name and [email protected] [email protected] is the email address to receive the Response Required email.

3/10/15 Logs 454 CWSerenade 5.0

Message Written When

Deposits - Received R response A user responded to a response required from BMIRANDA message at the Reply To Message screen. In this example, Deposits is the job name and BMIRANDA is the user that responded to the job. Deposits - No response after 5 CWSerenade reviewed the Response Required attempts, will retry table five times to determine if a user responded to the response required message. In this example, Deposits is the job name. Deposits - No response after 10 CWSerenade reviewed the Response Required attempts, will retry table ten times to determine if a user responded to the response required message. In this example, Deposits is the job name. Deposits - No response The number of times to look for a response in the received, default response used Response Required table has been reached without a response from a user. CWSerenade uses the default response for the job. In this example, Deposits is the job name. Deposits - Response Required A user deleted a response required message at entry not found, default the Work with Required Response screen. response used CWSerenade uses the default response for the job. In this example, Deposits is the job name.

CWSerenade Trace Log

Use this log to review internal messages about CWSerenade application processing. Typically, you review this log only if the contents of the CWSerenade Application Log did not help you.

If the logging level is set to DEBUG, this log also contains transactional messages passed between CWSerenade and Paymentech when you are using the Paymentech Point-to- Point Integration.

The Trace Log settings in the Logging Properties File define the name of the trace log, the level of detail to include in the log, and the number of days to store a backup copy of the log before deleting it.

To review the file: You can use a text editor such as Wordpad to review the file.

3/10/15 Logs 455 CWSerenade 5.0

CWSerenade Manifest Log

Use this log to review the messages generated between CWSerenade and the PC manifest station. You can use this log to confirm that communication between CWSerenade and the PC manifest station is working correctly, to isolate communication problems, or to recover information. Also, any errors that occur during processing are written in this log.

The Manifest Log settings in the Logging Properties File define the name of the manifest log, the level of detail to include in the log, and the number of days to store a backup copy of the log before deleting it.

To review the file: You can use a text editor such as Wordpad to review the file.

CWSerenade Order Log

Use this log to review the CWOrderIn and CWORDEROUT messages between an external system and CWSerenade as part of the Generic Order Interface (Order API). You can use this log to confirm that communication between the external system and CWSerenade is working correctly, to isolate communication problems, or to recover information.

The Order Log settings in the Logging Properties File define the name of the ORDER.log, the level of detail to include in the log, and the number of days to store a backup copy of the log before deleting it.

To review the file: You can use a text editor such as Wordpad to review the file.

Successful message: A message similar to the following indicates if an order message was successful:

12:32:42,483 INFO ORDER - In Message:

Errors to look for:

A message similar to the following indicates that the CWOrderIn message passed was not formatted correctly or contained invalid data:

17:21:46,031 INFO ORDER - Out Message:Invalid XML Message:

3/10/15 Logs 456 CWSerenade 5.0 source_code="SOURCE" response_type="E" order_channel="I" sold_to_fname="Freddie" sold_to_lname="Snare" sold_to_address1="10 Main Street" sold_to_city="NATICK" sold_to_state="MA" sold_to_zip="01760" sold_to_country="USA" order_type="I" sold_to_email="[email protected]" >

com.mr.serenade.exception.BOException: OrderInMessageBO.checkDuplicateWebOrder - null

CWSerenade PayPal Log

Use this log to review the messages generated between CWSerenade and PayPal when you are using the PayPal Direct Connection Integration. You can use this log to confirm that communication between CWSerenade and PayPal is working correctly, to isolate communication problems, or to recover information. Also, any errors that occur during processing are written in this log.

The PayPal Log settings in the Logging Properties File define the name of the PAYPAL.log, the level of detail to include in the log, and the number of days to store a backup copy of the log before deleting it.

To review the file: You can use a text editor such as Wordpad to review the file.

Data security: For data security, CWSerenade masks credit card information in this log.

Successful message: A message similar to the following indicates if the PayPal deposit transmission was successful:

11:56:55,831 INFO PAYPAL - [Settlement] Transmitted deposit(*PURCH) Processed : AMT=20.94&INVNUM=111- 1754&NOTE=PAYPAL+1754&AUTHORIZATIONID=12345678901234567890&COMPLETETYPE=NotCompl ete&METHOD=DoCapture Failed message: A failure in the deposit process or errors during processing generate ERROR level messages, such as the following:

11:56:55,831 ERROR PAYPAL - [Settlement] Transmitted deposit(*PURCH) Failure : AMT=20.94&INVNUM=111- 1754&NOTE=PAYPAL+1754&AUTHORIZATIONID=12345678901234567890&COMPLETETYPE=NotCompl ete&METHOD=DoCapture 11:57:06,581 ERROR PAYPAL - [Settlement] Timestamp : 2009-05-08T15:52:55Z 11:57:08,737 ERROR PAYPAL - [Settlement] CorrelationId : 6e035b0d97c05 11:57:10,284 ERROR PAYPAL - [Settlement] Error code : 10002 11:57:11,972 ERROR PAYPAL - [Settlement] Short message : Security error 11:57:15,018 ERROR PAYPAL - [Settlement] Long message : Security header is not valid 11:57:17,300 ERROR PAYPAL - [Settlement] Severity code : Error Setup errors: Errors reading the authorization service or authorization service extended generate ERROR level messages, such as the following:

11:31:04,471 ERROR PAYPAL - [Settlement] Defaults set. Do not process in PayPal 'live' environment

3/10/15 Logs 457 CWSerenade 5.0

11:31:31,841 ERROR PAYPAL - [Settlement] Exception(s) encountered during Initialization. No Deposit processing performed. For more information: See PayPal Direct Connection Integration for an overview and the required setup for processing deposit transactions between CWSerenade and PayPal using a direct connection.

Cybersource Log

Use this log to review messages generated between CWSerenade and Cybersource when you are using the Cybersource Point-to-Point Integration.

Data security: For data security, CWSerenade masks credit card information in this log.

You can use this log to confirm that communication between CWSerenade and Cybersource is working correctly, to isolate communication problems, or to recover information. Also, any errors that occur during processing are written in this log.

Setup: The CYB_PAY_LINK_SERVICE_ENABLE_LOG setting in the Interface Properties File defines whether the Cybersource web service logs messages generated between CWSerenade and Cybersource when you are using the Cybersource Point-to- Point Integration. Valid values are:

• true = CWSerenade writes transactions for the Cybersource Point-to-Point Integration to the Cybersource log. • false = CWSerenade does not write transactions for the Cybersource Point-to-Point Integration to the Cybersource log.

Important: For data security, set this value to false unless you are troubleshooting the CWSerenade integration with Cybersource. Once you are done troubleshooting, delete any log files that are created.

The CYB_PAY_LINK_SERVICE_LOG_DIRECTORY setting in the Interface Properties File defines the location of the log written by the Cybersource web service API program. For example: C:/Cybersource/log/ . To review the file: You can use a text editor such as Wordpad to review the file.

For more information: See Cybersource Point-to-Point Integration in the Online Help for an overview and processing details.

User Exit/Edit Point (UEP) Log

Use this log to review user exit point and user edit point activity based on the user exit points and user edit points you have set up through the Working with User Exit Point (WUEP) option.

User exit points: You can use this log to confirm the exact parameters being passed for a user exit point during system processing.

3/10/15 Logs 458 CWSerenade 5.0

Example:

16:45:14,599 INFO UEP - User Exit Point com.mr.serenade.bo.interfaces.UserExitPointTester called. 16:45:14,599 INFO UEP - User Exit Point Tester executed. 16:45:14,599 INFO UEP - User Exit Point Tester value for position 0 is 002 16:45:14,615 INFO UEP - User Exit Point Tester value for position 1 is 000013644 16:45:14,615 INFO UEP - User Exit Point Tester value for position 2 is C 16:45:14,615 INFO UEP - User Exit Point Tester value for position 3 is 1110804 16:45:14,615 INFO UEP - User Exit Point Tester value for position 4 is 0164514 16:45:14,615 INFO UEP - User Exit Point Tester value for position 5 is D 16:45:14,615 INFO UEP - User Exit Point com.mr.serenade.bo.interfaces.UserExitPointTester execution was successful! Database update returned was false. User edit points: The unique program you define in the Implementation class field for the user edit point controls the information written to the UEP log. MICROS recommends you create an entry for the parameters passed and the response string returned.

Example:

13:03:52,043 INFO UEP - User Edit Point Tester executed. 13:03:52,043 INFO UEP - User Edit Point Tester value for key COMPANY is 002 13:03:52,043 INFO UEP - User Edit Point Tester value for key ORDER_TYPE is P 13:03:52,043 INFO UEP - User Edit Point Tester value for key SHIP_VIA is 01 13:03:52,043 INFO UEP - User Edit Point Tester value for key CUST_CLASS is 13:03:52,043 INFO UEP - User Edit Point Tester value for key SALES_REP is 0000000 13:03:52,043 INFO UEP - User Edit Point Tester value for key SHIP_TO_NBR is 001 13:03:52,043 INFO UEP - User Edit Point Tester value for key ORDER_NBR is 00009189 13:03:52,043 INFO UEP - User Edit Point Tester value for key PO_NBR is To review the file: You can use a text editor such as Wordpad to review the file.

Setup: Complete the User Exit Point Log settings in the Logging Properties File.

Customer API Log Use this log to review the messages between CWSerenade and XStore when you use the Generic Customer API. You can use this log to confirm that communication between CWSerenade and XStore is working correctly, to isolate communication problems, or to recover information. Any errors that occur during processing are also in this log. Note: Messages between CWSerenade and any other system using the Generic Customer API are logged in the CWSerenade MQ Message Log.

The Customer API Log settings in the Logging Properties File define the name of the CUST.log, the level of detail to include in the log, and the number of days to store a backup copy of the log before deleting it.

To review the file: You can use a text editor such as Wordpad to review the file.

For more information: See the Generic Customer API for an overview and the required setup for processing Customer API transactions.

3/10/15 Logs 459 CWSerenade 5.0

Alert Log

Use this log to review the alerts generated by the Job Monitor Status (WJMO) menu option. This log indicates:

• the name of the job monitor associated with the alert • the name of the job monitor rule associated with the alert • the action taken for the job monitor rule, such as generating an email or running a periodic process Note: The system updates this log only if the ALLOW_JOB_MONITOR and TRACK_ALERTS_IN_LOG settings in the Monitor Properties file are set to Y. These settings should only be set to Y for the application server that allows job scheduling; see How to Schedule a Job.

IntegrationOrder (ChannelAdvisor) Log

Use this log to review activity related to integration with ChannelAdvisor. See ChannelAdvisor Integration Overview for background.

Relate (Loyalty) Log

Use this log to review activity related to the loyalty integration with Relate. The system logs the loyalty transactions passed between CWSerenade and Relate if the Logging Level is DEBUG. See Relate Loyalty Integration for background.

Locate Log

Use this log, in addition to Locate’s logs, to review messages passed between CWSerenade and Locate as part of the Order Broker Integration.

3/10/15 Logs 460 CWSerenade 5.0

SQL Server Logs

Purpose: Use the SQL Server logs to review the activity that occurred against the CWSerenade database and to determine if SQL Server generated an internal error, such as when the server is out of memory.

Error to look for: The following error indicates that SQL Server had a problem connecting to the CWSerenade database: org.jboss.util.NestedSQLException: Could not create connection; - nested throwable: (com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host has failed. java.net.ConnectException: Connection refused: connect); Location of logs:

1. In SQL Server Management Studio, expand the left hand pane to advance to Management > SQL Server Logs .

3/10/15 Logs 461 CWSerenade 5.0

2. Right-click on a SQL Server log and select View SQL Server Log to advance to the Log File Viewer window.

3/10/15 Logs 462 CWSerenade 5.0

3. You can highlight a message in the log to display its details at the bottom of the window.

3/10/15 Logs 463 CWSerenade 5.0

Windows Event Viewer

Purpose: Use the Windows Event Viewer to determine if a Windows error occurred on the CWSerenade application server or CWSerenade database server. If you have more than one CWSerenade application server, make sure to review the Windows Event Viewer for each server.

Location of Event Viewer:

1. Select Start > Administrative Tools > Event Viewer to advance to the Event Viewer window.

3/10/15 Logs 464 CWSerenade 5.0

2. In the left-hand pane, you can select to review the following types of logs:

• Windows Application log (this refers to any application that may be running on the server) • Windows Security log • Windows System log Highlight a log to display the contents of the log in the right-hand pane. As you review the log, check for any Error or Warning messages.

3/10/15 Logs 465 CWSerenade 5.0

3. Right-click on a message and select Properties to advance to the Event Properties window, where you can review the details of the message. In the sample window below, the message details indicate that the system rebooted automatically. This message explains why CWSerenade stopped working.

3/10/15 Logs 466 Monitoring Jobs

Overview: Job Monitoring provides the ability to monitor jobs to ensure that they are running correctly.

The Job Monitor:

Collects monitoring information, such as: • Last heartbeat date/time: the last date and time when the system verified the job was running. • Last transaction date/time: the last date and time when a transaction was processed by the job. The system collects the monitoring information in the Job Monitor Status table. You can review the monitoring information on the Work with Job Monitor Screen (WJMO) . Note: If you use multiple application servers, the system collects monitoring information in the Job Monitor Status table across all application servers.

Performs an action when job monitor rules you set up for a job are met, such as: • receiving an email so that you can react to the condition. • running a periodic function. For example, you can define a job monitor rule that if the Controlling Async goes down, to run the periodic function that starts the Controlling Async. If you define a periodic function, you can also have the system notify you by email if the condition for the job monitor rule still exists after running the periodic function. The monitor rules defined for a job can be based on the last update date and time, the last transaction date and time, or query results.

You can define monitor rules for a job on the Work with Job Monitor Rules Screen . When you schedule a job monitor rule, the rule becomes a scheduled job that you can review on the Scheduled Jobs screen. Whenever you restart the SERENADE service or the application server, the system determines if any job monitor rules should be running, and if so, starts them.

Additional Job Monitoring

• The Long Running Jobs Monitor watches the batch jobs running on the Job Management Screen and sends a Long Running Job Email to a specified email address if a job runs without ending longer than a specified time. See Long Running Jobs Monitor for more information on this process and the setup requirements. • Resetting Processes and Jobs on Server Startup provides the ability when you restart CWSerenade (see Restarting CWSerenade ) for the system to look at the settings in

3/10/15 Monitoring Jobs 467 CWSerenade 5.0

the Monitor Properties File to determine the active processes and the associated running jobs to automatically reset on server startup. See Resetting Processes and Jobs on Server Startup for more information on this process and the setup requirements. • Running a Periodic Process on Server Startup provides the ability when you restart CWSerenade (see Restarting CWSerenade ) for the system to look at the settings in the Monitor Properties File to determine the periodic process and its assigned periodic functions to run on server startup. See Running a Periodic Process on Server Startup for more information about this process and the setup requirements. In this topic:

• Job Monitor Setup • Which Jobs are Monitored? • Job Monitor Examples • Work with Job Monitor Screen (WJMO) • Work with Job Monitor Rules Screen • Job Monitor Rules Window

3/10/15 Monitoring Jobs 468 CWSerenade 5.0

Job Monitor Setup

Before you can use the Job Monitor, you must complete the required setup.

• Monitor Properties File • Job Monitor Rules • Job Monitor Queries

Monitor Properties File

The Monitor Properties file contains the settings required to enable the Job Monitor.

Where is the file located? This file is located in the same folder as the other CWSerenade properties files: C:\Serenade\server\conf\cwdirectcpproperties\cwdirectcp_monitor.prop erties , where C: represents the root of the default drive.

How to edit the file: MICROS recommends that you first make a backup copy of the configuration file. Then use a text editor such as Notepad or Wordpad, being careful not to change any of the settings except those indicated below.

Your changes take effect the next time you select Change in Refresh System Properties (PROP) or when you stop and restart the SERENADE service (or the application server).

Property Name Description

ALLOW_JOB_MONITOR Indicates whether the job monitor runs on this application server. Valid values: Y = The job monitor runs on this server. N (default) or blank = The job monitor does not run on this server. In this situation, the only option on the Work with Job Monitor Rules Screen is to display a rule’s settings. Note: Set this value to Y for all application servers that you wish to collect data on the Work with Job Monitor Screen (WJMO) .

3/10/15 Monitoring Jobs 469 CWSerenade 5.0

Property Name Description

ALLOW_JOB_MONITOR_RULES_ Indicates whether job monitor rules run on this TO_RUN_ON_THIS_SERVER application server. Valid values: Y = The job monitor rules run on this server. N (default) or blank = The job monitor rules do not run on this server. In this situation, the only option on the Work with Job Monitor Rules Screen is to display a rule’s settings. Note: If you are using a multiple application server environment, set this value to Y on one server only that allows job scheduling; see Scheduling Jobs . JOB_MONITOR_QUERY_DIRECT The directory on the application server where you store ORY queries used by the job monitor. The delivered directory is C:\\CWSerenade\\JobMonitorQueries\\ . TRACK_ALERTS_IN_LOG Indicates whether you log all alerts generated by the job monitor. Valid values: Y = Log all alerts generated by the job monitor in the Alert Log . N or blank = Do not log alerts generated by the job monitor. TRACK_ALERT_EMAILS_IN_FO The directory on the application server where the system LDER stores a copy of the alert emails generated by the job monitor. This directory is not delivered; the recommended location is C:\\CWSerenade\\JobMonitorEmails\\ . Each alert email is stored in this directory using the following naming convention: ALERT_JOBNAME_RULENAME_DDMMYY_HHMMSS.txt , where: • JOBNAME is job monitor name • RULENAME is the job monitor rule name • DDMMYY is the date the email alert was sent • HHMMSS is the time the email alert was sent Example: ALERT_BILL_ASYNC_BILLASYNCACTIVE_032 713_083000 indicates the email alert was generated for the BILL_ASYNC job monitor and BILLASYNCACTIVE job monitor rule on March 27 at 8:30. Note: The system does not save an alert email in this directory if the job monitor rule name contains any special characters.

3/10/15 Monitoring Jobs 470 CWSerenade 5.0

Job Monitor Rules

Use the Work with Job Monitor Rules Screen to define monitor rules for a job. For each rule, you can define:

• how often the system evaluates the rule to determine if its condition is met. • whether the system uses the last update date and time, the last transaction date and time, or query results to determine whether to act on the rule. • the type of action to perform if the rule’s conditions are met, such as: • receiving an email so that you can react to the condition. • running a periodic function. For example, you can define a job monitor rule that if the Controlling Async goes down, to run the periodic function that starts the Controlling Async. If you define a periodic function, you can also have the system notify you by email if the condition for the job monitor rule still exists after running the periodic function. Note: You can define job monitor rules only on the application server whose ALLOW_JOB_MONITOR_RULES_TO_RUN_ON_THIS_SERVER setting is set to Y.

Job Monitor Queries

Create any queries for which you wish to receive an alert if the query results come back true. Once you create the query:

• Store these queries in the directory defined for the JOB_MONITOR_QUERY_DIRECTORY setting in the Monitor Properties File . • Create a job monitor rule for the Query job monitor on the Work with Job Monitor Rules Screen . For this job monitor rule: • Select to Alert On Query and enter the name of the query that you created. • Define a schedule when the system determines if the query results come back true. • Define the action to take if the query results come back true.

Job Monitor Query Examples

Job Monitor Rule Query Example

receive an alert when the if(Select COUNT(*) from [Billing Header Data Queue] number of records in the )>=100 select 'Y' else select '' billing data queue is equal to or greater than 100

3/10/15 Monitoring Jobs 471 CWSerenade 5.0

Job Monitor Rule Query Example

receive an alert if the if(Select COUNT(*) from [JenasysJob] where number of running jobs for [jobName] in (select [ilq job name] from the INVTRAN_IN [Integration Process Queue] where [ILP Process]='INVTRAN_IN' and [ILQ Enabled]='Y') and integration layer job is not status='RUN')=3 select '' else select 'Y' equal to 3 receive an alert if no orders if (select COUNT(*) from [Order Header] where [CMP were created for the Company]=7 and [OHD Order current date date]=1000000+CONVERT(VARCHAR(8), GETDATE(), 12))>0 select '' else select 'Y'

3/10/15 Monitoring Jobs 472 CWSerenade 5.0

Which Jobs are Monitored?

The table below lists the jobs you can monitor on the Work with Job Monitor Screen (WJMO) . For each job, this table lists:

• The name of the job. • The type of information collected for each job. • Heartbeat Only = the job is associated with a heartbeat that the system uses to verify that the job is still active. Currently, there are no jobs associated with a heartbeat only. • Transactions Only = the job processes transactions. • Heartbeat and Transactions = the job is associated with a heartbeat and processes transactions. • Query = the job runs queries not related to the other jobs listed on the Work with Job Monitor screen. • When the system collects the type of information. • The purpose of the job. • The menu option where you can work with the job. Note:

• If you have the same job running more than once; for example, you have multiple Billing Async jobs running at the same time, the job displays on the Work with Job Monitor Screen (WJMO) only once. • If you have the same integration layer job running more than once; for example, you have multiple stored value card activation jobs, each job displays on the Work with Job Monitor Screen (WJMO) .

Job Information Updated When Collected

MBJC Use Background Job Control (MBJC) to review and work with these jobs.

3/10/15 Monitoring Jobs 473 CWSerenade 5.0

Job Information Updated When Collected

BILL_ASYNC background job Heartbeat and Heartbeat date/time Processes updates related to Transaction The job reads the billing shipments and returns. date/time async data queue every 30 seconds. Transaction date/time The system reads a record from the billing async data queue. Note: The system also updates the heartbeat date/time and transaction date/time when you end the asyncs. CNTL_ASYNC background job Heartbeat and Heartbeat date/time Starts and ends each of the Transaction The job reads the background ASYNC jobs. When you date/time controlling async data start the CNTL_ASYNC job, all of the queue every 30 seconds. background ASYNC jobs start; when Transaction date/time you end the CNTL_ASYNC job, all of The system reads a record the background ASYNC jobs end. You from the controlling async cannot start or end an individual data queue. background ASYNC job. Note: The system also updates the heartbeat date/time and transaction date/time when you end the asyncs. EBO_ASYNC background job Heartbeat and Heartbeat date/time Updates the system tables with Transaction The job reads the EBO reservation and backorder information date/time async data queue every 30 whenever the inventory level for a seconds. backordered item increases. Inventory Transaction date/time levels for an item increase when you The system reads a record process inventory transactions, receive from the EBO async data purchase orders, or transfer queue. merchandise from suspense. Note: The system also updates the heartbeat date/time and transaction date/time when you end the asyncs.

3/10/15 Monitoring Jobs 474 CWSerenade 5.0

Job Information Updated When Collected

ORDR_ASYNC background job Heartbeat and Heartbeat date/time Updates the system tables with order Transaction The job reads the order and demand information as orders are date/time async data queue every 30 entered and maintained. seconds. Transaction date/time The system reads a record from the order async data queue. Note: The system also updates the heartbeat date/time and transaction date/time when you end the asyncs. OTHR_ASYNC background job Heartbeat and Heartbeat date/time Updates the system tables with Transaction The job reads the other purchase order information when date/time async data queue every 30 purchase orders are entered, seconds. maintained, or received. Transaction date/time The system reads a record from the other async data queue. Note: The system also updates the heartbeat date/time and transaction date/time when you end the asyncs.

APIs CUSTIN CWCustomer web service Transactions Transaction date/time Processes an Inbound Customer Only date/time The CWCustomer web Message (CWCustomerIn) received service processes a from an external system, such as a CWCustomerIn message. point-of-sale system. EMAILREQ CWEmailRequest web Transactions Transaction date/time service Only date/time The CWEmailRequest web Processes an Email Request Message service processes a (CWEmailRequest) received from an CWEmailRequest integrated point-of-sale system. message.

3/10/15 Monitoring Jobs 475 CWSerenade 5.0

Job Information Updated When Collected

MANIFEST CWManifest web service Transactions Transaction date/time Processes a Manifest Pick Request Only date/time The CWManifest web Message (CWManifestPickRequest) service processes a and Manifest Ship Request Message CWManifestPickRequest (CWManifestShipRequest) received or from a PC manifesting station. CWManifestShipRequest message. ORDERINAPI CWOrderIn web Transactions Transaction date/time service Only date/time The CWOrderIn web Processes an Inbound Order XML service processes a Message (CWOrderIn) received from CWOrderIn message. an external system, such as a web storefront. PICKINAPI CWPickIn web service Transactions Transaction date/time Processes a CWPickIn XML Message Only date/time The CWPickIn web service received from a warehouse processes a CWPickIn management system. message. RECEIPTIN CWReceiptIn web Transactions Transaction date/time service Only date/time The CWReceiptIn web Processes a PO Receipt In XML service processes a Message (CWReceiptIn) received from CWReceiptIn message. a warehouse management system.

EJCT Use Work with E-Commerce Job Control (EJCT) to review and work with this job.

3/10/15 Monitoring Jobs 476 CWSerenade 5.0

Job Information Updated When Collected

ORDCLNUP Order Cleanup job Heartbeat and Heartbeat date/time Rejects any orders that have been Transaction The job looks for orders to “abandoned” on the web storefront if, date/time clean up every minute. The for example, the customer closes the system also updates the browser window. This process uses the heartbeat date/time when Time Limit for Suspended E- the job deletes an order. Commerce Orders (G43) system Transaction date/time control value to determine the number The job deletes an order. of minutes to wait before rejecting an order. Only orders of the type specified in the E-Commerce Order Type (G42) system control value are eligible for cleanup, and the cleanup takes place only if the Get Orders from E- Commerce (G35) system control value is selected. The system generates the E-Commerce Order Cleanup Log each time it deletes a suspended order. Each time the job rejects an order, it writes a record in the Deleted Order table.

WPBJ Use Work with Drop Ship Background Jobs (WPBJ) to review and work with this job. COLLAB Heartbeat and Heartbeat date/time Processes transactions between Transaction The job looks for CWCollaborate or Locate’s Drop Ship date/time transactions to process, Manager and CWSerenade in the based on the Delay Time related CWCollaborate or Locate Drop defined for the job. Ship Integrations. Transaction date/time The job processes a transaction.

3/10/15 Monitoring Jobs 477 CWSerenade 5.0

Job Information Updated When Collected

IJCT This list includes: • any outbound integration layer job that has program ILR0022 defined as its Outbound program , including any jobs that you create. • specific inbound integration layer jobs: • CUSTHIST • CUSTSRCH • INV_INQUIRY • INVTRANIN • ORDLINHIST • ORDTRNHIST • PROCESSIN • RETURNIN Use Work with Integration Layer Processes (IJCT) to review and work with these jobs. BILL_UPD Heartbeat and Heartbeat date/time At periodic intervals, processes Transaction The BILL_UPD job reads deferred billing updates for records in date/time the IL Outbound Trigger the Invoice Header table whose table, based on the Process Date field is 0. The Outbound Outbound delay time delay time defines how often the job defined for the job. processes the deferred billing updates. Transaction date/time Example: If the Outbound delay time The BILL_UPD job is 60 , the system looks for deferred processes a billing billing updates to process every 60 transaction. seconds. BROKER Heartbeat and Heartbeat date/time Sends and receives order information Transaction The BROKER job reads and updates using Locate’s message date/time the IL Outbound Trigger formats. table, based on the Outbound delay time defined for the job. Transaction date/time The BROKER job processes a broker transaction.

3/10/15 Monitoring Jobs 478 CWSerenade 5.0

Job Information Updated When Collected

CUST_OUT Heartbeat and Heartbeat date/time Generates an outbound Transaction The CUST_OUT job reads CWCustomerDownload XML message date/time the IL Outbound Trigger when you create, change, or delete a table for CST customer customer. download triggers, based on the Outbound delay time defined for the job. Transaction date/time The CUST_OUT job reads and processes a customer download trigger record in the IL Outbound Trigger table. CUSTHIST Transactions Transaction date/time Receives a CustHistRequest for Only date/time updated when the job customer order history or information receives and processes a on a specific order, and generates a transaction. response (CWCUSTHISTOUT or CWORDEROUT). CUSTSRCH Transactions Transaction date/time Receives a CWCustomerInqRequest Only date/time updated when the job for information on one or more receives and processes a customers matching specific search transaction. criteria, and generates a CWCustomerInqResponse. INV_DOWNLOAD Heartbeat and Heartbeat date/time Sends inventory availability information Transaction updated by reading the IL to another system in the date/time Outbound Trigger table. If CWInventoryDownload message. the table is empty, the system sleeps for the Outbound delay time and then reads the table again. Transaction date/time updated every time the system reads and processes a record in the IL Outbound Trigger table.

3/10/15 Monitoring Jobs 479 CWSerenade 5.0

Job Information Updated When Collected

INV_INQUIRY Transactions Transaction date/time Receives a Only date/time updated when the job CWInventoryInquiryRequest for receives and processes a inventory availability on a specific transaction. item/SKU and generates a CWInventoryInquiryResponse. INVOIC_OUT Heartbeat and Heartbeat date/time Sends invoice information in the Transaction updated by reading the IL CWInvoiceOut message to another date/time Outbound Trigger table. If system, such as a retail store, financial the table is empty, the system, or warehouse management system sleeps for the system. Outbound delay time and then reads the table again. Transaction date/time updated every time the system reads and processes a record in the IL Outbound Trigger table. INVTRANIN Transactions Transaction date/time Receives inventory transactions in the Only date/time updated when the job inCreateInvXaction message and receives and processes a updates inventory information, such as transaction. in the Item Location and Item Warehouse tables. Any errors create Item Transaction Error records. ITEM_OUT Heartbeat and Heartbeat date/time Sends item and SKU information in the Transaction updated by reading the IL CWItemOut message to another date/time Outbound Trigger table. If system, such as a retail store or the table is empty, the warehouse management system. system sleeps for the Outbound delay time and then reads the table again. Transaction date/time updated every time the system reads and processes a record in the IL Outbound Trigger table.

3/10/15 Monitoring Jobs 480 CWSerenade 5.0

Job Information Updated When Collected

ORDLINHIST Transactions Transaction date/time Receives order line history activity for a Only date/time updated when the job specified order line on an order, based receives and processes a on XML messages from an external transaction. system, such as a warehouse management system. ORDTRNHIST Transactions Transaction date/time Receives order transaction records for Only date/time updated when the job a specified order, based on XML receives and processes a messages from an external system, transaction. such as a warehouse management system. You can review the order transaction history records created on the Display Order History Screen. PICK_OUT Heartbeat and Heartbeat date/time Sends a Pick Message from Transaction updated by reading the IL CWSerenade (CWPickOut) for each date/time Outbound Trigger table. If pick slip generated. the table is empty, the system sleeps for the Outbound delay time and then reads the table again. Transaction date/time updated every time the system reads and processes a record in the IL Outbound Trigger table. PMD_ONLINE Heartbeat and Heartbeat date/time Used by the Paymentech Point-to- Transaction updated by completing an Point Integration to open a connection date/time online authorization to the online port defined in the transaction then sleeping Interface Properties File to connect to for 2 seconds. Paymentech to process online Transaction date/time transactions and keeps the online updated every time the connection open until you end the PMD_ONLINE job PMD_ONLINE job. processes a Paymentech transaction.

3/10/15 Monitoring Jobs 481 CWSerenade 5.0

Job Information Updated When Collected

PO_OUT Heartbeat and Heartbeat date/time Sends a CWPurchaseOrderOut Transaction updated by reading the IL message to a warehouse management date/time Outbound Trigger table. If system or an EDI vendor. the table is empty, the system sleeps for the Outbound delay time and then reads the table again. Transaction date/time updated every time the system reads and processes a record in the IL Outbound Trigger table. PROCESSIN Transactions Transaction date/time Uses the CWServiceIn Web Service to Only date/time updated when the receive the CWProcessIn message CWServiceIn web service and submit the specified periodic receives and processes a process received from an external CWProcessIn message. system. RETURN_OUT Heartbeat and Heartbeat date/time Sends a Return Authorization Transaction updated by reading the IL Outbound XML Message date/time Outbound Trigger table. If (CWReturnRAOut) when a return the table is empty, the authorization is created, changed, or system sleeps for the deleted. Outbound delay time and then reads the table again. Transaction date/time updated every time the system reads and processes a record in the IL Outbound Trigger table. RETURNIN Transactions Transaction date/time Receives an Return Request Message Only date/time updated when the job (CWReturnIn) to create and process a receives and processes a return against a specified order line. transaction. Optionally, the process sends an Return Response Message (CWReturnOut) to the external system, indicating if the return processed successfully or if an error occurred.

3/10/15 Monitoring Jobs 482 CWSerenade 5.0

Job Information Updated When Collected

SVC_OUT Heartbeat and Heartbeat date/time Sends a Stored Value Card Activation Transaction updated by completing a Request to CWIntegrate; CWIntegrate date/time stored value card translates and transmits the message activation transaction then to the service bureau. The service then sleeping for 2 bureau sends a Stored Value Card seconds. Activation Response to CWIntegrate; Transaction date/time CWIntegrate translates and transmits updated every time the the message to CWSerenade. SVC_OUT job processes an activation transaction. SVC_REVRSL Heartbeat and Heartbeat date/time Sends a Stored Value Card Transaction updated by completing a Authorization Reversal to CWIntegrate; date/time stored value card CWIntegrate translates and transmits authorization reversal the message to the service bureau. transaction then sleeping The service bureau sends a Stored for 2 seconds. Value Card Authorization Reversal Transaction date/time Response to CWIntegrate; updated every time the CWIntegrate translates and transmits SVC_REVRSL job the message to CWSerenade. processes an authorization reversal transaction. VENDOR_OUT Heartbeat and Heartbeat date/time Sends a CWVendorOut message to Transaction updated by reading the IL another system, such as a retail store date/time Outbound Trigger table. If or warehouse management system. the table is empty, the system sleeps for the Outbound delay time and then reads the table again. Transaction date/time updated every time the system reads and processes a record in the IL Outbound Trigger table.

Query

3/10/15 Monitoring Jobs 483 CWSerenade 5.0

Job Information Updated When Collected

QUERY Query Only The system does not Runs queries not related to the jobs update the heartbeat listed on the Work with Job Monitor date/time or transaction screen. date/time for this job. See Job Monitor Queries for more information on how to set up the Query job monitor.

3/10/15 Monitoring Jobs 484 CWSerenade 5.0

Job Monitor Examples

• Job Monitor Example: PICK_OUT • Job Monitor Example: ORDER_IN • Job Monitor Example: Query

Job Monitor Example: PICK_OUT

You want to be notified by email every day between 9AM and 5PM when the system does not update the Update Date and Update Time for the PICK_OUT integration layer job, indicating the job is no longer active. The system should send an email 2 minutes after the conditions for the job monitor rule are met (the update date and update time are NOT updated), and then check every 5 minutes to see if the rule’s conditions are still met. After 10 minutes, the system should send another email.

You create a job monitor rule with the following rule settings:

• Frequency : Daily • Start Time : 090000 • End Time : 170000 • Alert On : Update Time • Alert After : 2 minutes • Sleep Time : 5 minutes • Re-alert After : every 10 minutes • Action Type : Email The system uses the following calculation to determine if the job monitor rule’s conditions are met: current time - alert after minutes > last update time .

At 9:02 the system checks to see if the job monitor rule’s conditions are met (the update date and time are not updated, indicating the job is not active). In this example, the PICK_OUT job is not active. The system sends a job monitor rule email to the specified To Email address and updates the Check date and Check time for the rule.

The job monitor rule sleeps for 5 minutes.

At 9:07 (9:02 + 5 minutes sleep), the system checks to see if the job monitor rule’s conditions are met (the update date and time are not updated, indicating the job is not active). In this example, the PICK_OUT job is not active; however, the system does not send a job monitor rule email because the 10 minute re-alert time has not been reached.

3/10/15 Monitoring Jobs 485 CWSerenade 5.0

At 9:12 (9:07 + 5 minute sleep), the system checks to see if the job monitor rule’s conditions are met (the update date and time are not updated, indicating the job is not active). In this example, the PICK_OUT job is not active. Because the 10 minute re-alert time has been reached, the system sends a job monitor rule email to the specified To Email address and updates the Check date and Check time for the rule.

Job Monitor Example: ORDER_IN

You want to be notified by email every day between 9AM and 5PM when the system does not update the Transaction Date and Transaction Time for the ORDER_IN integration layer job, indicating web orders are no longer being received. The system should send an email 15 minutes after the conditions for the job monitor rule are met (the transaction date and time are NOT updated, indicating a web order was not received in the last 15 minutes), and then check every 30 minutes to see if the rule’s conditions are still met. After 15 minutes, the system should send another email.

You create a job monitor rule with the following rule settings:

• Frequency : Daily • Start Time : 090000 • End Time : 170000 • Alert On : Transaction Time • Alert After : 15 minutes • Sleep Time : 30 minutes • Re-alert After : every 30 minutes • Action Type : Email The system uses the following calculation to determine if the job monitor rule’s conditions are met: current time - alert after minutes > last transaction time .

At 9:15 the system checks to see if the job monitor rule’s conditions are met (the transaction date and time are not updated, indicating web orders are no longer being received). In this example, the conditions are met. The system sends a job monitor rule email to the specified To Email address and updates the Check date and Check time for the rule.

The job monitor rule sleeps for 30 minutes.

At 9:45 (9:15 + 30 minutes sleep), the system checks to see if the job monitor rule’s conditions are met (the transaction date and time are not updated, indicating web orders are no longer being received). In this example, the conditions are met and the 30 minute re-alert time has been reached. The system sends a job monitor rule email to the specified To Email address and updates the Check date and Check time for the rule.

3/10/15 Monitoring Jobs 486 CWSerenade 5.0

Job Monitor Example: Query

You want to be notified by email every day between 9AM and 5PM when the number of unprocessed billing async records is equal to or greater than 500 records. The system should send an email 5 minutes after the query results are true, and then check every 10 minutes to see if the rule’s conditions are still met. After 30 minutes, the system should send another email.

You create the following query and place the query in the JOB_MONITOR_QUERY_DIRECTORY : if(Select COUNT(*) from [Billing Header Data Queue] )>=500 select 'Y' else select '' You create a job monitor rule with the following rule settings:

• Frequency : Daily • Start Time : 090000 • End Time : 170000 • Alert On : Query • Query : BILLINGRECORDS.TXT • Alert After : 5 minutes • Sleep Time : 10 minutes • Re-alert After : every 30 minutes • Action Type : Email At 9:05, the system checks to see if the job monitor rule’s conditions are met (the results for the BILLINGRECORDS.TXT query in the JOB_MONITOR_QUERY_DIRECTORY are Y, indicating there are 500 or more unprocessed billing async records). In this example, the query results are met. The system sends a job monitor rule email to the specified To Email address and updates the Check date and Check time for the rule.

The job monitor rule sleeps for 10 minutes.

At 9:15 (9:05 + 10 minutes sleep), the system checks to see if the job monitor rule’s conditions are met (the results for the BILLINGRECORDS.TXT query in the JOB_MONITOR_QUERY_DIRECTORY are Y, indicating there are 500 or more unprocessed billing async records). In this example, the conditions are met and the 30 minute re-alert time has been reached. The system sends a job monitor rule email to the specified To Email address and updates the Check date and Check time for the rule.

3/10/15 Monitoring Jobs 487 CWSerenade 5.0

Work with Job Monitor Screen (WJMO)

Purpose: Use this screen to review and work with the job monitor rules defined for a batch job.

How to display this screen: Enter WJMO in the Fast Path field at the top of any menu or select Job Monitor Status from a menu.

Column sort: You can sort on any column on this screen by clicking on the column name. An arrow pointing up displays next to the field when the values for the field display in ascending sequence; an arrow pointing down displays next to the field when the values for the field display in descending sequence.

Jobs first display on this screen in alphanumeric job name sequence.

• To review the job with the most recent update, click on the Update Date field until an arrow pointing down displays next to it to display jobs in descending update date sequence. • To review the job with the most recent transaction, click on the Transaction Date field until an arrow pointing down displays next to it to display jobs in descending transaction date sequence.

Field Description

Job Name The name of the job. Place your cursor over the job name to determine if the job is associated with a heartbeat and/or transactions. • Heartbeat Only = the job is associated with a heartbeat that the system uses to verify that the job is still active. Currently, there are no jobs associated with a heartbeat only. • Transactions Only = the job processes transactions. • Heartbeat and Transactions = the job is associated with a heartbeat and processes transactions. • Query = this job runs queries not related to the other jobs listed on the Work with Job Monitor screen. See Which Jobs are Monitored? for a list of jobs that display on this screen and whether the job is associated with a heartbeat and/or transactions. Alphanumeric, 10 positions; display-only.

3/10/15 Monitoring Jobs 488 CWSerenade 5.0

Field Description

Update Date The date when a heartbeat was last processed for the job to verify that the job is still active. If the job also processes transactions, the system also updates this field when a transaction is processed. Note: If a job uses a heartbeat and processes transactions, the update date and time may be different from the transaction date and time. Numeric, 8 positions (MM/DD/YYYY format); display-only. Update Time The time when a heartbeat was last processed for the job to verify that the job is still active. If the job also processes transactions, the system also updates this field when a transaction is processed. Note: If a job uses a heartbeat and processes transactions, the update date and time may be different from the transaction date and time. Numeric, 6 positions (HH:MM:SS format); display-only. Transaction Date The date when a transaction was last processed by the job. Note: If a job uses a heartbeat and processes transactions, the update date and time may be different from the transaction date and time. Numeric, 8 positions (MM/DD/YYYY format); display-only. Transaction Time The time when a transaction was last processed by the job. Note: If a job uses a heartbeat and processes transactions, the update date and time may be different from the transaction date and time. Numeric, 6 positions (HH:MM:SS format); display-only. Process The menu option where you can work with the job. Click on this value to advance to the specified menu option.

Screen Option Procedure

Work with the condition rules defined for a Click the icon ( ) in the Rules column for job a job to advance to the Work with Job Monitor Rules Screen . Note: Once rules are defined for a job, the color of the icon changes to blue ( ).

3/10/15 Monitoring Jobs 489 CWSerenade 5.0

Screen Option Procedure

Refresh the screen with the most recent Select Refresh . Update Date , Update Time , Transaction Date , and Transaction Time Display all jobs in the Job Monitor Status, Select Show All . including jobs that were previously hidden Note: You can use the Hide Job option on the Work with Job Monitor Rules Screen to hide a job so that it does not display on the Work with Job Monitor Screen (WJMO) .

3/10/15 Monitoring Jobs 490 CWSerenade 5.0

Work with Job Monitor Rules Screen

Purpose: Use this screen to define monitoring rules for a job. When these rules are met, you can have the system:

• notify you by email. • run a periodic function, and if the conditions for the rule are still met after the defined sleep time, send an email when the re-alert time is reached. The condition rules can be based on the last update date and time, the last transaction date and time, or query results.

Note:

• If job monitoring does not run on the application server (the ALLOW_JOB_MONITOR setting in the Monitor Properties File for the application server is set to N), the only option on this screen is to display a rule’s settings. • You can define job monitor rules only on the application server whose ALLOW_JOB_MONITOR_RULES_TO_RUN_ON_THIS_SERVER setting is set to Y.

How to display this screen: Click the icon ( or ) in the Rules column for a job on the Work with Job Monitor Screen (WJMO) .

Column sort: You can sort on the Rule and Status columns on this screen by clicking on the column name. An arrow pointing up displays next to the field when the values for the field display in ascending sequence; an arrow pointing down displays next to the field when the values for the field display in descending sequence.

Field Description

Job Name The name of the job associated with the monitoring rules. This is the job you selected on the Work with Job Monitor Screen (WJMO) . Alphanumeric, 10 positions; display-only.

3/10/15 Monitoring Jobs 491 CWSerenade 5.0

Field Description

Rule The name of the job monitor rule. Note: • When you schedule a job monitor rule, the system uses the first 10 positions of the rule name as the job name that displays on the Scheduled Jobs Screen . • In order to save alert emails for the job monitor rule in the TRACK_ALERT_EMAILS_IN_FOLDER directory, do not use any special characters in the job monitor rule name. Alphanumeric, 25 positions; display-only. When Indicates how often the system monitors the job to see if it meets the rule’s conditions, based on the Frequency , Start Time , and End Time defined for the rule on the Job Monitor Rules Window . Alphanumeric, 40 positions; display-only. Status The status of the job monitor rule. Valid statuses are: • Unscheduled = The rule has been created, but it not in use. • Scheduled = The rule has been created and scheduled, but is not currently running. • Running = The rule is actively running. • Ending = The rule is in the process of ending. Alphanumeric, display-only. Check Date The date when the system last compared this rule to the monitoring information for the job to determine if the rule’s conditions are met. Numeric, 8 positions (MM/DD/YYYY format); display-only. Check Time The time when the system last compared this rule to the monitoring information for the job to determine if the rule’s conditions are met. Numeric, 6 positions (HH:MM:SS format); display-only.

If you are reviewing the Work with Job Monitor Rules screen from an application server

Screen Option Procedure

Create a job monitor rule Select Add to advance to the Job Monitor Rules Window .

3/10/15 Monitoring Jobs 492 CWSerenade 5.0

Screen Option Procedure

Hide this job from the Work with Job Select Hide Job . Monitor Screen (WJMO) Note: To redisplay this job, including all other jobs that are hidden, select Show All on the Work with Job Monitor Screen (WJMO) . Review a job monitor rule Select Display in the Action column for a job monitor rule to advance to the Job Monitor Rules Window . All fields on this window are display-only. Note: This option is available if the status of the job is Unscheduled , Scheduled , Running , or Ending . Change a job monitor rule Select Edit in the Action column for a job Note: This option is available only if the monitor rule to advance to the Job Monitor Status of the job monitor rule is Rules Window . Unscheduled . Note: This option is available if the status of the job is Unscheduled . Run a job monitor rule Select Start in the Action column for a job Note: This option is available only if the monitor rule to change its status to Status of the job monitor rule is Running . At the Confirm window, select Unscheduled or Scheduled . OK to start running the rule; otherwise, select Cancel . Note: This option is available if the status of the job is Unscheduled or Scheduled and the start time is met. When you start a job monitor rule, the system changes the status of the job to Running . Stop a job monitor rule Select Stop in the Action column for a job Note: This option is available only if the monitor rule. At the Confirm window, Status of the job monitor rule is Running . select OK to stop running the rule; otherwise, select Cancel . Note: This option is available if the status of the job is Running . When you stop a rule, the system changes its status from Running to Ending , and then to Unscheduled or Scheduled .

3/10/15 Monitoring Jobs 493 CWSerenade 5.0

Screen Option Procedure

Schedule a job monitor rule Select Schedule in the Action column for Note: This option is available only if the a job monitor rule to change its status to Status of the job monitor rule is Scheduled . At the Confirm window, select Unscheduled . OK to schedule the rule; otherwise, select Cancel . Note: This option is available if the status of the job is Unscheduled . When you schedule a job monitor rule, the system displays the job on the Scheduled Jobs Screen . The first 10 positions of the job monitor rule name displays as the job name on the screen. If the job monitor rule runs a periodic process, the system also displays the periodic process on the Scheduled Jobs screen and schedules the periodic process to run 1 minute after the associated job monitor rule. Once the periodic process runs, the system removes it from the Scheduled Jobs screen. Unschedule a job monitor rule Select Unschedule in the Action column for a job monitor rule to change its status to Unscheduled . At the Confirm window, select OK to schedule the rule; otherwise, select Cancel . Note: This option is available if the status of the job is Scheduled . Delete a job monitor rule Select Delete in the Action column for a job monitor rule. At the Confirm window, select OK to delete the rule; otherwise, select Cancel . Note: This option is available if the status of the job is Unscheduled .

3/10/15 Monitoring Jobs 494 CWSerenade 5.0

Job Monitor Rules Window

Purpose: Use this window to define settings for a job monitor rule.

How to display this screen: On the Work with Job Monitor Rules Screen :

• select Add to create a new job monitor rule. • select Edit in the Action column for a job monitor rule to change its settings. • select Display in the Action column for a job monitor rule to review its settings. All fields on the window are display-only.

Field Description

Rule The name of the job monitor rule. Note: When you schedule a job monitor rule, the system uses the first 10 positions of the rule name as the job name that displays on the Scheduled Jobs Screen . Alphanumeric, 25 positions; required.

3/10/15 Monitoring Jobs 495 CWSerenade 5.0

Field Description

Frequency How often the system monitors the job to see if it meets the rule’s conditions. Valid values: • Daily: the system monitors the job for this rule every day. • Weekdays: the system monitors the job for this rule every Monday, Tuesday, Wednesday, Thursday, and Friday. • Weekends: the system monitors the job for this rule every Saturday and Sunday. • Monday: the system monitors the job for this rule every Monday. • Tuesday: the system monitors the job for this rule every Tuesday. • Wednesday: the system monitors the job for this rule every Wednesday. • Thursday: the system monitors the job for this rule every Thursday. • Friday: the system monitors the job for this rule every Friday. • Saturday: the system monitors the job for this rule every Saturday. • Sunday: the system monitors the job for this rule every Sunday. Alphanumeric; required. Start Time Defines the start time when the system monitors the job to see if it meets the rule’s conditions. You must enter the start time in HHMMSS military format; for example, enter 070000 to indicate a start time of 7 AM. Note: The start time must be earlier than the end time. Numeric, 6 positions; required. End Time Defines the end time when the system monitors the job to see if it meets the rule’s conditions. You must enter the end time in HHMMSS military format; for example, enter 170000 to indicate an end time of 5 PM. Note: The end time must be later than the start time. Numeric, 6 positions; required.

3/10/15 Monitoring Jobs 496 CWSerenade 5.0

Field Description

User The user ID associated with the job monitor rule. The user ID defaults to the user that is creating or updating the rule, but you can override it. User IDs are defined in and validated against the User table. Alphanumeric, 10 positions; required. Alert On Defines the factor the system evaluates to determine if the job meets the rule’s conditions. Valid values: • Update Time: The system evaluates the job’s last update date and time to determine if the job meets the rule’s conditions. • Transaction Time: The system evaluates the job’s last transaction date and time to determine if the job meets the rule’s conditions. • Query: The system evaluates the results of the query specified for the rule to determine if the job meets the rule’s conditions. Alphanumeric, required. Query The name of the query whose results the system evaluates to determine if the job meets the rule’s conditions. The query must be located in the directory defined for the JOB_MONITOR_QUERY_DIRECTORY setting in the Monitor Properties file. Alphanumeric, 25 positions; required if Alert On is set to Query. Alert After The number of minutes to determine when to test for the condition. current time - alert time = last update time Numeric, 3 positions; required. Sleep Time The time, in minutes, between rechecking the condition. Numeric, 3 positions; required. Re-alert After The time, in minutes, for re-alerting for the condition. Note: The re-alert after minutes should be equal to or greater than the sleep time minutes. Numeric, 3 positions; required if Action Type is Email.

3/10/15 Monitoring Jobs 497 CWSerenade 5.0

Field Description

Action Type Defines the type of action to take when the job meets the rule’s conditions. Valid values: • Email: Send an email to the specified To Email . • Periodic Process: Run the specified periodic process. Note: When the Action Type is Periodic Process, define a From Email , Subject , To Email , and Email Text to have the system send an email alert if the condition for the job monitor rule still exists after running the periodic function. The system will continue to send an email alert until the condition is no longer met or the end time is met. Alphanumeric, required. Process Name The code for the periodic process to run. Periodic processes are defined in and validated against the Periodic Process table. Alphanumeric, 10 positions; required if Action Type is Periodic Process. Process Company The code for the company to run the periodic process. Company codes are defined in and validated against the Company table. Numeric, 3 positions; optional. From Email The “from” email address for the job monitor rule email. See Email Address Validation . Alphanumeric, 50 positions; required if Action Type is Email. Subject The subject of the job monitor rule email. Alphanumeric, 50 positions; required if Action Type is Email. To Email The list of email addresses that receive the job monitor rule email. Each email address entered must be separated by a semi-colon (;). For example: [email protected];[email protected] . See Email Address Validation . Alphanumeric, 200 positions; required if Action Type is Email. Email Text The text to display in the body of the job monitor rule email. Alphanumeric, 255 positions; required if Action Type is Email.

3/10/15 Monitoring Jobs 498 Caching

Cache: A store of information that will be required in the future, and can be retrieved quickly. CWSerenade uses caching to store recently used information from the CWSerenade database in a place where it can be accessed quickly, rather than accessing the database, in order to improve performance. Caching occurs across all CWSerenade companies; if you use multiple application servers, you can specify which servers share the same cache. For example, you should have all of your test servers share the same cache and all of your production servers share a cache that is different from the cache assigned to your test servers.

See Caching with Multiple Application Servers .

• My Cache Screen • Caching with Multiple Application Servers • Assigning a Server to a Multicast Group • Verifying that Caching for Multiple Application Servers is Configured Correctly • Determining the Subnet for a Server • Which CWSerenade Tables are Cached? • DBTableCacheMapping Properties File • Ehcache • Ehcache.xml File For more information: See Reload System Cache (RCHE) .

3/10/15 Caching 499 CWSerenade 5.0

My Cache Screen

Purpose: Use the My Cache screen to determine which servers share the same cache and to determine which caches currently contain data.

How to display this screen: If you have Advanced Commands authority, select Advanced Commands from the Document Management screen ( My Docs ), Job Management screen ( My Jobs ) or Forms Management screen ( My Forms ) to advance to the Commands screen; then, select My Cache .

Field Description

You are connected to Server The name and IP address of the CWSerenade application server that you are currently logged into.

Servers in Cluster A list of the servers that share the same cache as the server you are currently logged into. The system does not display a server that shares the same cache until a user logs into CWSerenade using that server. The server information remains on the My Cache screen until the server is restarted or the connection times out due to lack of activity on the server. Example: SERVER1 and SERVER2 share the same cache. User A logs into SERVER1. At this point, the Servers in Cluster section of the My Cache screen does not display any server information because no one has logged into SERVER2. User B logs into SERVER2. At this point, SERVER1 displays server information for SERVER2 in the Servers in Cluster section of the My Cache screen and SERVER2 displays server information for SERVER1 in the Servers in Cluster section of the My Cache screen. User B restarts SERVER2 and logs into SERVER1. At this point, the Servers in Cluster section of the My Cache screen no longer displays server information because no one has logged back into SERVER2. Note: If a user changes a record in a table that is associated with a cache, the system does not clear the records in the cache and does not remove the cache from this screen; use Reload System Cache (RCHE) to reset the cache. Multiple Application Servers If you have configured multiple application servers to share the same cache, you can verify that you have configured the servers correctly by having a user log into CWSerenade using each server. If caching configuration is set up correctly, each server that shares the same cache should display on this screen. See Verifying that Caching for Multiple Application Servers is Configured Correctly . Server The IP address of a server that shares the same cache as the server you are currently logged into.

3/10/15 Caching 500 CWSerenade 5.0

Field Description

Host Name The name of a server that shares the same cache as the server you are currently logged into.

Current Cache A list of the caches that currently contain records. When does a cache display on this screen? A cache displays on the My Cache screen if it contains a record. When a CWSerenade process or a user changes a table that is associated with a cache, the system clears the records in the cache and removes the cache from this screen until a new record is added to the cache. How many records are in the cache? The Live objects represents the number of records that are in the cache. The system continues to update the Live objects until the cache is cleared or the maximum number of records for the cache is reached. How many times has a record been retrieved from the cache? The Hit count represents the number of times the system retrieved data from the cache instead of the database. The system continues to update the Hit count until you stop and restart the SERENADE service or application server. Cache Name The name of a cache that currently contains records. Live Objects The number of records in the cache. For example, if two additional charge code records exist in the ADDL.CHARGE.CACHE, the Live Objects is 2. Note: This number continues to increment until the cache is cleared. Hit Count The number of times the system retrieved data from the cache instead of the database. For example, if records for additional charge code A and additional charge code B exist in the ADDL.CHARGE.CACHE, and the system retrieved additional charge code A from the cache 7 times and retrieved additional charge code B from the cache 2 times, the Hit count is 9. Note: This number continues to increment until you stop and restart the SERENADE service or stop and restart the application server. If the system clears a cache, when the cache reappears on the screen, the Hit count will still be from the last time the SERENADE service or the server was restarted.

3/10/15 Caching 501 CWSerenade 5.0

Caching with Multiple Application Servers

If you use multiple CWSerenade application servers, each server contains its own cache.

However, in order to keep the cache on each server in sync, if the cache on one server changes, the system updates the cache for all servers that are in the same Multicast Group.

Example: If a user logs in to application server A and makes a change to the Pay Type table, the system clears the PAY.TYPE.CACHE for that server. If application server B shares the same cache as application server A, the system also clears the PAY.TYPE.CACHE on application server B so that server B does not retrieve outdated information.

Assigning a Server to a Multicast Group

The MulticastGroupAddress and MulticastGroupPort settings in the Ehcache.xml File define which servers are in the same Multicast Group. Each server that has the same MulticastGroupAddress and MulticastGroupPort defined in its Ehcache.xml File is considered part of the same Multicast Group. For example, you should assign all of your production servers to the same Multicast Group and all of your test servers to a different Multicast Group.

In addition, each server that is in the same Multicast Group must be within the same subnet; see Determining the Subnet for a Server .

Important: To keep test data separate from production data, you should make sure that your test servers use a different cache from your production servers. Make sure you assign a Multicast Group to your test servers that is different from the Multicast Group that is assigned to your production servers.

3/10/15 Caching 502 CWSerenade 5.0

For more information: For more information on the Ehcache.xml file and how to configure multiple CWSerenade application servers to share the same cache, contact your MICROS representative.

Verifying that Caching for Multiple Application Servers is Configured Correctly

Once you configure multiple application servers to share the same cache, you can verify that the caching configuration is set up correctly using the My Cache Screen . If caching configuration is set up correctly, each server that shares the same cache should display on the My Cache Screen :

• the server that the user is currently logged into displays for the You are connected to Server field. • the other servers that share the same cache as the server you are currently logged into displays for the Servers in Cluster field. Note: The system does not display a server that shares the same cache until a user logs into CWSerenade using that server.

If you do not see all of the servers that share the same cache on the My Cache Screen :

• Verify that a user is logged into each CWSerenade server that shares the same cache. • Check the Ehcache.xml file located on each server and verify that the MulticastGroupAddress and MulticastGroupPort settings in the Ehcache.xml file for each server are the same. • Verify that each server that shares the same cache is part of the same subnet; see Determining the Subnet for a Server . • Verify that a firewall is not blocking the connection between each server that shares the same cache.

3/10/15 Caching 503 CWSerenade 5.0

Determining the Subnet for a Server

Use the following steps to determine the subnet address defined for a server.

1. Log on to the server and select Start > Run to advance to the Run window. At this window, enter cmd in the Open field.

2. Select OK to advance to the cmd.exe window. At this window, enter IPCONFIG and press Enter to display the subnet address defined for the server.

For more information: For more information about configuring the subnet address defined for a server, contact your System Administrator.

3/10/15 Caching 504 CWSerenade 5.0

Which CWSerenade Tables are Cached?

Purpose: The dbtablecachemapping.properties file indicates which CWSerenade tables are cached.

DBTableCacheMapping Properties File

The dbtablecachemapping.properties file controls which tables are cached and the name of the cache associated with the table so that the system knows which cache to clear when a CWSerenade process updates the information in a table.

This file provides the table name of each CWSerenade table that is cached and the corresponding cache name; there are other caches that are not associated with a CWSerenade table, such as the caches used for the QAS Address integration.

Important: Do not change the information in the dbtablecachemapping.properties file.

Location of file: This file is normally saved on the CWSerenade application server at the following location, where C: is the root drive of the CWSerenade application server.

C:\Serenade\server\conf\cwdirectcpproperties\ dbtablecachemapping.properties

Table Name View Name Cache Name accitm Accompanying Item ACCOMPANYING_ITEM_CACHE acenty Entity ENTITY_CACHE ccpt00 CC Paytype Cross Ref PAY_TYPE_CACHE ccvnrs CC Vendor Response CC_VENDOR_RESPONSE_CACHE cscanr Cancel Reason CANCEL_REASON_CACHE cscscl Customer Class CUSTOMER_CLASS_CACHE csprfx Prefix Code PREFIX_CODE_CACHE csprod Profile Data PROFILE_CACHE csprof Profile PROFILE_CACHE dolofr Dollar Chart by Offer DOLLAR_CHART_BY_OFFER_CACHE fccurv Curve ITEM_MISC_CACHE flshrt Shipping Rate SHIPPING_RATE_CACHE

3/10/15 Caching 505 CWSerenade 5.0

Table Name View Name Cache Name frgofr Free Gift by FREE_GIFT_CACHE Offer/Source ftfefep Freight Exemption FRT_EXEMPT_CACHE ftftdp Freight Table Detail FREIGHT_TABLE_DETAIL_CACHE glacct General Ledger ACCOUNTING_MISC_CACHE Account inabcv ABC/Velocity ITEM_MISC_CACHE infreq Frequency ITEM_MISC_CACHE inhzrd Hazard ITEM_MISC_CACHE inicls Item Class ITEM_CLASS_CACHE inictg Item Category ITEM_CLASS_CACHE inicty Item Coordinate Type ITEM_MISC_CACHE inicyc Item Cycle ITEM_DETAIL_CACHE iniofr Item Offer ITEM_OFFER_CACHE iniskg Item SKU Group ITEM_DETAIL_CACHE inists Item Status ITEM_DETAIL_CACHE inisvo Item Ship Via Override ITEM_SHIP_VIA_OVERRIDE_CACHE inlcls Location Class ITEM_DETAIL_CACHE inldvp Long SKU Division ITEM_CLASS_CACHE inlobp Line of Business ITEM_MISC_CACHE inloc Location LOCATION_CACHE inlskc Long SKU Class ITEM_CLASS_CACHE inlskd Long SKU Department LONG_SKU_DEPARTMENT_CACHE insecf Secure Feature SECURED_FEATURE_CACHE insetd Set Detail SET_DETAIL_CACHE inskeo SKU Element 1 ITEM_DETAIL_CACHE insket SKU Element 3 ITEM_DETAIL_CACHE inskew SKU Element 2 ITEM_DETAIL_CACHE

3/10/15 Caching 506 CWSerenade 5.0

Table Name View Name Cache Name insldo Soldout Control SOLDOUT_CONTROL_CACHE insubs Item Subscription ITEM_SUBSCRIPTION_CACHE inprpp Prep Code ITEM_MISC_CACHE inuom Unit Of Measure ITEM_MISC_CACHE inwrhs Warehouse WAREHOUSE_CACHE inloba Line of Business LOB_ASSIGNMENT_CACHE Assignment msaocp Add On Code ITEM_MISC_CACHE msaucf Auth User Class USER_CACHE Feature msausf Auth User Feature USER_CACHE mscfrd Miscellaneous Fraud FRAUD_CACHE mscnte Country Extended STATE_COUNTRY_CACHE mscnty Country STATE_COUNTRY_CACHE mscoad Company Address COMPANY_ADDRESS_CACHE msctle Entity System Control ENTITY_SCV_CACHE Val msctlv System Control Value SCV_CACHE mscurr Currency CURRENCY_CACHE msdiv Division DIVISION_CACHE msilpr Integration Layer INTEGRATION_PROCESS_CACHE Process msoffr Offer OFFER_CACHE msscf SCF SCF_CACHE msscfe SCF Extended SCFEXTENDED_CACHE msscft SCF Tax Rate TAX_RATE_CACHE msseas Season ITEM_MISC_CACHE msshfd Special Format SPECIAL_FORMAT_CACHE msshpv Ship Via SHIP_VIA_CACHE

3/10/15 Caching 507 CWSerenade 5.0

Table Name View Name Cache Name mssta State STATE_COUNTRY_CACHE mssvwp Ship Via Weight SHIP_VIA_WEIGHT_CHARGE_CACHE Charge msudep User Defined Exit USER_CACHE Point oeadch Additional Charge ADDL_CHARGE_CACHE oeauct Auth Service Country STATE_COUNTRY_CACHE oeausv Authorization Service AUTH_SERVICE_CACHE oeauex Authorization Service AUTH_SERVICE_CACHE Ext oebogo Promotion BOGO PROMOTION_CACHE oecnhd Continuity Header CONTINUITY_HEADER_CACHE oedglp Division G/L DIVISION_CACHE oeexrs Exchange Reason EXCHANGE_REASON_CACHE oeicrc Item Class Restr by ITEM_CLASS_RESTRICTION_CACHE Cust oeicrs Item Class Restr by ITEM_CLASS_RESTRICTION_CACHE SpclH oeicsp Item Restr by ITEM_RESTRICTION_CACHE Country/State oeirct Item Class Restr by ITEM_CLASS_RESTRICTION_CACHE City oeitxx Item Tax Exempt ITEM_TAX_EXEMPT_CACHE oepaye Pay Type Extended PAY_TYPE_EXTENDED_CACHE oepayt Pay Type PAY_TYPE_CACHE oepnck Order Pending Check FRAUD_CACHE oepore Price Override PRICE_OVERRIDE_REASON_ Reason Ext EXTENSION_CACHE oeprcu Promotion Customer PROMOTION_LIST_CACHE oeprex Promotion Item PROMOTION_LIST_CACHE Exclusion

3/10/15 Caching 508 CWSerenade 5.0

Table Name View Name Cache Name oepric Promotion Item PROMOTION_CACHE Category oeprom Promotion PROMOTION_CACHE oepror Price Override PRICE_OVERRIDE_REASON_CACHE Reason oeprsr Promotion Source PROMOTION_CACHE oertrs Return Reason RETURN_REASON_CACHE oesfrc Dollar Chart by Source DOLLAR_CHART_BY_SOURCE_CACHE oeshim Shipper/Item SHIPPER_ITEM_CACHE oetype Order Type ORDER_TYPE_CACHE oezpct Zip/City/State Tax TAX_RATE_CACHE Rate oezpsv Zip Ship Via ZIP_SHIP_VIA_CACHE oezrcp Zone Reservation ITEM_MISC_CACHE povend Vendor VENDOR_CACHE povia PO Ship Via ITEM_MISC_CACHE rtndis Return Disposition RETURN_DISPOSITON_CACHE scfvia SCF Ship Via SCF_VIA_CACHE scuser User USER_CACHE users N/A JENASYS_USER_CACHE

3/10/15 Caching 509 CWSerenade 5.0

Ehcache

Purpose: CWSerenade uses Ehcache 1 to manage caching. Ehcache is a widely used open source Java cache. For more information about Ehcache, visit the ehcache web site (http://ehcache.sourceforge.net/).

Ehcache.xml File

The Ehcache.xml file is used to configure how caching works in CWSerenade.

A separate Ehcache.xml file should exist on each CWSerenade application server.

Location of file: This file is normally saved on the CWSerenade application server at the following location, where C: is the root drive of the server.

C:\Serenade\server\additional-lib\ehcache.xml

Important: Talk to your MICROS representative before making any changes to the information in the Ehcache.xml file.

The settings that you may wish to review for troubleshooting purposes are described below.

Setting Description

cacheManagerPeerProviderFactory peerDiscovery automatic = Indicates the system detects which CWSerenade application servers share the same cache by checking the multicastGroupAddress and multicastGroupPort defined for each application server. multicastGroupAddress The multicast group address assigned to each server that shares a cache. Valid multicast group addresses must be within the range of 224.0.0.1 to 238.000.000.000 . The default setting is 235.0.0.1 . Note: This is not the IP address of the server; you can enter any number as the group address as long as it is between the range of 224.0.0.1 and 238.000.000.000.

1. Ehcache copyright Luck Consulting Pty Ltd.

3/10/15 Caching 510 CWSerenade 5.0

Setting Description

multicastGroupPort The port number assigned to each server that shares a cache. The port number can be any number, as long as each server is assigned the same multicast group port number. timeToLive Indicates the level at which multiple application servers can share the same cache. 0 = Share the same host. 1 = Share the same subnet. 32 = Share the same site. 64 = Share the same region. 128 = Share the same continent. 255 = Unrestricted. Note: CWSerenade is configured to share the same cache at the subnet level (timeToLive is 1). If you need to configure a higher level at which multiple CWSerenade application servers share the same cache, contact your MICROS representative.

3/10/15 Caching 511 CWSerenade 5.0

Reload System Cache (RCHE)

Purpose: Use this menu option to view and reset the cache. Typically, you would reset the cache only if a user changed data directly in the CWSerenade database, such as executing a SQL query that updated records, rather than using a screen in CWSerenade to make the changes.

Authority: Users with ALLOW or DISPLAY authority to this menu option can reset the cache.

How to display this screen: Enter RCHE in the Fast path field or select Reset Cache from a menu.

Field Description

Current active caches A list of the caches that currently contain records. When does a cache display on this screen? A cache displays on the Reload System Cache screen if it contains a record. When a CWSerenade process or a user changes a table that is associated with a cache, the system clears the records in the cache and removes the cache from this screen until a new record is added to the cache. However, if a user changes a record in a table that is associated with a cache, the system does not clear the records in the cache and does not remove the cache from this screen; select Clear to reset the cache.

Cache Cluster A list of the servers that share the same cache as the server you are currently logged into. The system does not display a server that shares the same cache until a user logs into CWSerenade using that server. The server information remains on the Reload System Cache screen until the server is restarted or the connection times out due to lack of activity on the server. See Servers in Cluster for more information. Current Server The name and IP address of the CWSerenade application server that you are currently logged into. Cache Name The name of a cache that currently contains records.

3/10/15 Reload System Cache (RCHE) 512 CWSerenade 5.0

Screen Option Procedure

Reset all caches Select Clear . The system clears all caches that display on the screen and reloads the cache with data from the CWSerenade database. Note: If more than one CWSerenade server shares the same cache (see Cache Cluster ), you only need to reset the cache on one of the servers that are part of the cluster.

3/10/15 Reload System Cache (RCHE) 513 Frequently Asked Questions

• Does the system track when a user logs in and out of CWSerenade? • Can I have more than one active CWSerenade session open at a time? • Where does the date in the calendar window come from? • How do you select a date from the calendar pop-up window? • What are the sorting rules for alpha and numeric fields? • How do I display the CWSerenade screens correctly on a laptop? • How do I restart CWSerenade ? • How do I export data from CWSerenade? • Why does the About screen indicate that the operating system version is unknown? • How can I prevent screen display problems? • Why is the screen sometimes blank when I return to it after an interval, and how do I correct it? • What is the default timeout interval, and how do I change it? • Are there keyboard shortcuts available? • Why does the CWSerenade table of contents display when I try to log in to CWSerenade?

Question Answer

Does the system The system does not track when a user logs in and out of track when a user CWSerenade. logs in and out of CWSerenade? Can I have more You can run more than one session at a time. See Running than one active Multiple Sessions of CWSerenade for more information. CWSerenade session open at a time? Where does the The date shown in the calendar window is based on the local PC date in the rather than the application server (system time). calendar window come from?

3/10/15 Frequently Asked Questions 514 CWSerenade 5.0

Question Answer

How do you When you open the window by clicking the calendar icon, as select a date from displayed below, the calendar pop- up window?

The current date is in bold; however, you need to select the date by clicking it. The current date is not selected automatically.

What are the Unlike some other environments, such as the iSeries, sorting rules for CWSerenade displays alphabetical characters after numeric alpha and characters. For example, if you are working with SCF codes and numeric fields? enter a country of USA and an alphabetical SCF, the screen lists alphabetical SCFs starting with your entry, and then numeric SCFs after that. How do I display 1. Go to the properties for the desktop. the CWSerenade 2. Select the Settings tab. screens correctly 3. Confirm that the Screen Resolution is set to at least 1152 by on a laptop? 864 or higher. If the resolution is higher, confirm that the aspect ratio is the same (for example, 1280 by 800). 4. Click the Advanced button. 5. Confirm that the DPI setting is Normal Size (96 DPI) . How do I restart See Restarting CWSerenade . CWSerenade ? How do I export You can use SQL utilities or any other preferred tool to export data from data from the CWSerenade database. CWSerenade?

3/10/15 Frequently Asked Questions 515 CWSerenade 5.0

Question Answer

Why does the If you use a recent version of the Windows operating system, the About screen version number displayed on the About screen for the operating indicate that the system might include the word “unknown,” for example: Windows operating system NT (unknown) 6.1. This version number simply indicates that version is more recent versions use a date version naming convention unknown? (such as Windows 2008) rather than a version number naming convention. How can I prevent CWSerenade 3.0 and higher has been tested to display correctly screen display in Internet Explorer 8.0. Also, on release 3.0 or higher of problems? CWSerenade, you need to have Compatibility View turned off to prevent display issues. See Configuring Internet Explorer 8.0® or Higher (Remove Compatibility View) for more information. Why is the screen Certain screens “time out” after a period of inactivity. If you return sometimes blank to CWSerenade and, after you click an option, the body of the when I return to it screen goes blank, but the icons are still displayed in the upper after an interval, right area, you can: and how do I correct it? • click the My Jobs icon ( ) • select Exit at the Job Management Screen You should be able to return to standard operations. This timeout issue occurs only with certain screens, including:

• the screens in Streamlined Order Inquiry (DORI) • the Display Order Broker Details Screen • the Brokered Backorder Summary Screen Note: Since only certain screens are subject to the time out, it sometimes occurs that you return to your CWSerenade session after a period of inactivity and are able to work for awhile until you advance to one of the affected screens, and then you see a timeout message. In this situation, you need to close your browser window and start a new session.

3/10/15 Frequently Asked Questions 516 CWSerenade 5.0

Question Answer

What is the The default timeout interval that affects certain screens, as default timeout described above, is 30 minutes. interval, and how To change the timeout interval: do I change it? • Open the web.xml file, typically located at C:\Serenade\server\conf where C: is the root drive of your CWSerenade application server • Search for the session-timeout setting • Enter the timeout interval in minutes The change takes effect the next time you stop and restart the Serenade service.

3/10/15 Frequently Asked Questions 517 CWSerenade 5.0

Question Answer

Are there When you use Internet Explorer, many CWSerenade screens keyboard provide keyboard shortcuts that you can use to select screen shortcuts functions, such as pressing the F5 function key to refresh the available? content displayed on a screen. Common shortcuts: Some common shortcuts that are available in CWSerenade, provided you use Internet Explorer: • F3 = Exit • F4 = Prompt for valid values • F5 = Refresh the screen content • F6 = Create a new record • F9 = Accept entries or Submit a process • F11 = Reject • F12 = Return to the previous screen • F13 (shift + F1) = Exit the menu option • F21 (shift + F9) = Generate a listing • F24 (shift + F12) = Select a different company Note: Not all shortcuts are supported on all screens. Additional shortcuts: Some screens support additional shortcuts. For example, the order header screen in order entry provides various shortcuts, such as pressing F14 to enter a one- time shipping address. Displaying the shortcut: Some screens support displaying a tooltip with the function key by positioning the cursor over the function name.

Note: Shortcuts are not available on the system management screens ( Document Management Screen , Job Management Screen , Forms Management Screen , or the Advanced Commands screen).

3/10/15 Frequently Asked Questions 518 CWSerenade 5.0

Question Answer

Why does the You advance to the CWSerenade login page by entering CWSerenade http://servername:8080/ or table of contents http://servername:8080/CWSerenade.html in a web display when I try browser, where servername if the name or IP address of the to log in to CWSerenade application server. However, if you enter any other CWSerenade? data after the last forward slash, such as http://servername:8080/Serenade , you advance to an inactive CWSerenade table of contents page instead. See Logging into CWSerenade for more information.

3/10/15 Frequently Asked Questions 519 Troubleshooting Index application servers, what to do when one of them goes down application settings, determining Applying changes to form image files backup copy of CWSerenade caching company logo does not display correctly CWServiceIn web service failing or returning error data source configuration settings, reviewing database connection problems Display Active Batch Jobs screen display issues; screen resolution settings emails generation forms generation and management generic web service failing or returning error HornetQ improving performance by reducing needless logging item images Job Management screen (My Jobs) jobs, monitoring log file locations and uses miscellaneous screen format issues MQ Client fails to deliver an XML message to another system online help search looping properties file change has not taken effect reports generation and management restarting CWSerenade returns integration with Xstore scheduled jobs screen contents cut off See also Frequently Asked Questions the CWSerenade application server cannot connect to the database version of CWSerenade, determining web service, authentication

3/10/15 Troubleshooting Index 520 Index

A .

application log . application servers, using multiple . authentication, web service . authorization interface setup .

B .

backup, creating a copy of CWSerenade .

C .

caching . company logos .

forms .

menu screens .

CWDirect log .

CWDirectCP Properties file .

D .

DABJ . data source configuration .

DBConfig Properties file .

DBTableCacheMapping properties file . deposit interface setup . document management .

E .

Ehcache.xml file .

Email Properties file . email setup .

3/10/15 Index 521 CWSerenade 5.0

F .

forms .

overview .

reviewing and working with .

setup .

summary .

troubleshooting .

FormTypeMapping Properties file .

H .

HornetQ setup .

I .

image setup . item images .

J .

JBoss logs .

Jenasys Properties file .

JMS providers .

HornetQ .

WebSphere MQ . job management . job scheduler .

L .

Log4j XML file .

Logging Properties file .

3/10/15 Index 522 CWSerenade 5.0

logs .

application .

archiving .

CWDirect .

JBoss .

Log4j XML file .

logging level .

manifest .

Message .

response .

SQL Server .

trace . long running job email . long running jobs monitor .

M .

manifest log .

Manifest Properties file .

Message log . monitor properties file .

MQ setup .

My Docs .

My Forms .

My Jobs .

N .

Notify Properties file .

P .

PC Manifest interface setup .

PROP .

R .

RCHE . response log . restarting CWSerenade .

3/10/15 Index 523 CWSerenade 5.0

S .

scheduling jobs .

secure socket layer, configuring for CWSerenade .

server configuration .

SQL Server logs .

support notifications .

system maintenance .

.

T .

test environment, setting up . tomee.xml file . trace log .

V .

Version Properties file . version, reviewing .

W .

web service, authentication .

WebSphere MQ setup . window event viewer .

WJMO .

WRPT .

WWSA .

3/10/15 Index 524