Skip navigation
Share This:

BMC Digital Workplace is better than ever! We listened to your feedback and are excited to introduce powerful new features focused on quality and simplifying your user experience.






Password Protection


Configure Approvals to require a password.



Display Types


Choose the type of Approvals you would like to be displayed.



On Hold


Hide the "On Hold" button for Approvals.




Remedy Connector Enhancements




Create Workflow with Identifiers and output the result to another activity. In this example I'm mapping the Work Order, Incident and Change Request ID's to the description field of a Work Order.


Once the service has been submitted from Digital Workplace the values are visible within the Work Order.



Get Entry by Query


Retrieve data from AR System forms based on query and use the output for another activity.

Once the service has been submitted the output is visible as an "In App" notification activity in the Digital Workplace Catalog.


Process Error Handling


Catch errors with Boundary Events within the scope of an activity on which it is defined.



Device Persistence Cache


After initial authentication you will not be prompted to login again unless for certain unforeseen actions such as application update or crash.




More flexibility for Virtual Marketplace entitlement.


Choose entitlement criteria from ITSM foundation Data or Custom Groups.


iOS Application Deployment


Automatically execute a command by selecting a device which is associated with your user profile in BMC Client Management. For example, install an iOS Application. Once the software has been provisioned the Request will change from "In Progress" to a "Closed" state.



Compatibility Details


Please refer to the Digital Workplace Basic and Advanced Compatability Matrix for further details.



Next Steps


  • Read everything you need to know about BMC Digital Workplace Basic and Advanced.
  • For a comprehensive summary of all enhancements please refer to the following documentation.


BMC Digital Workplace Basic

BMC Digital Workplace Advanced



Remedy ITSM Cloud Lifecycle Mgmt Client Management

Share This:




There may be occasions where you are unable to receive push notifications. Depending on the Device, Digital Workplace (DWP) will use the Apple Push Notification Service (APNS) or Google Cloud Messaging (GCM).Once a notification is triggered a DWP API sends the notification along with the users token to either the APNS or GCM Server. This token is what's used to identify the relevant DWP Device Client.




a) First of all, rule out the basics and make sure you have enabled push notification on your device and within your Digital Workplace Notification Settings in the Universal Client.


b) Are you able to receive notifications for other Device Applications ? If not there may be a problem which is more specific to your network.


c) Check the certificates are valid by running the Digital Workplace Health check utility.


d) Open the "" file (C:\Program Files\Apache Software Foundation\Tomcat8.0\external-conf) and check to make sure push notification is not disabled (a "true" value indicates enabled).


pushNotificationFeature.enabled =


e) Check the "PUSH_NOTIFICATION_CERT" table contains two records, there should be one for Digital Workplace and another for SmartIT.


The iOS Certificate which is shipped with Digital Workplace needs to be renewed on an annual basis. Please ensure you re-sign the BMC Digital Workplace mobile application with your enterprise credentials as detailed in our documentation.




To check the Digital Workplace client expiration open the cert from the "%MYIT_HOME%\Smart_IT_MyIT\ux\WEB-INF\classes\certification" directory.

The example below uses the shipped iOS client. The password for this private key is bmc-appstores


Once imported, open Certificate Manager by typing "certmgr.msc" from a run box, click on the Personal =>Certificates folder and you should see an expiration date for the Apple Push Certificate. As you can see from the following screenshot, the expiration for this default certificate is the 24th of September 2017.



f) Check the "DEVICE_TOKEN" table for records with OS_TYPE equal to either 0 (iOS) or 1 (Android). If none are present then notifications will NOT be delivered to mobile devices.




If the users token is present and the notification hasn't been sent, delete the row and initiate the notification again (providing previous checks failed). The token should be regenerated once the user logs in again.


g) If you are running Digital Workplace in a cluster make sure you have set the "master.server" value set correctly within the file. In a single Server environment it should be commented out whereas in a cluster the primary should be set to "true" and the secondary "false"


h) Check to make sure the outbound notification ports are open to communicate with APNS and GCM, you can confirm this by using "telnet" from the DWP Server. 


In the following example you can see a successful connection to APNS.


[root@clm-aus-012345 ~]# telnet 2195


Connected to

Escape character is '^]'.

...and the same for Android.

[root@clm-aus-018772 ~]# telnet 443


Connected to

Escape character is '^]'.


For a full list of required ports please refer to the doc link in the "Further Resources" section below


i) If you are using a re-branded app make sure it's using the correct Bundle ID


  • Unpack the Enterprise IPA
  • Change to the payload directory


  • Switch to a command prompt and run the following command.


myuserID$ codesign -dvv


Executable=/Users/myuser/Desktop/dwp_myuser 2017-07-27 13-48-51/Payload/ Identifier=com.bmc. Format=app bundle with Mach-O universal (armv7 arm64) CodeDirectory v=20200 size=71988 flags=0x0(none) hashes=2242+5 location=embedded Signature size=4690 Authority=iPhone Distribution: ACME Inc. Authority=Apple Worldwide Developer Relations Certification Authority Authority=Apple Root CA Signed Time=Jul 27, 2017, 13:48:42 Info.plist entries=59 TeamIdentifier=XXXXXXXX Sealed Resources version=2 rules=13 files=1017 Internal requirements count=1 size=176


The MyIT Identifier should match the bundle ID (User ID) from the resigned certificate.



j) Check the notification poller in the "" is not commented out. By default it's set to 5 minutes.


com.bmc.bsm.myit.service.assistance.NotificationPoller.PERIOD = 300000


k) If all else fails, turn on push notification debug in the "logback.xml" file by adding the following lines:


<!--Logger for Push Notification-->


<logger name="com.bmc.bsm.myit.service.pushnotification" level="DEBUG" additivity="false">

<appender-ref ref="FILE"/>


After 60 seconds, (default scan period) you should see more detailed information related to the push notification process within the ux log file.  Pay close attention to any google or apns activity. In the following example a push notification was sent to an iOS device and we can identify the user, client and iOS version. The highlighted device token should match the value in the "DEVICE_TOKEN" table.


DEBUG   | c.b.b.m.service.SecurityService | loginId=Allen, authentication=null, tenantId=000000000000001, systemApplicationName=MyIT, userApplicationName=MyIT-ITSM, applicationVersion=3.3.01,apiVersion=3030100, clientLocale=en_US, deviceToken=774f44f59593142fe6f5b341e2d302442aba573bbc33c3822e1b68139a0abe4d, osVersion=iOS 10.3.3, deviceModel=iPhone, verify=true

| c.b.b.m.s.p.apns.APNSService | Pushing alert notification to Apple for Device Token='[774f44f59593142fe6f5b341e2d302442aba573bbc33c3822e1b68139a0abe4d]', payload='TEST'.


l) Restart the "Smart IT/MyIT Application" service(s) and try again.


If push notification problems persist please log a case with us in here in Technical Support.


Further Resources


The following documentation & Knowledge Articles may also help.


Identifying connectivity and configuration issues by running health checks

Required ports

Google Cloud Messaging Overview 
Apple Push Notifications Tips

MyIT 3.x iOS client is available for download with new provisioning Profile


Remedy ITSM Remedy AR System

Share This:

At BMC, we’ve been undergoing a transformation, one that centers directly on how we help define the employee experience of the future. Driving the case for change is our team who want simplified tools to make them more effective. This work flexibility gives them a greater say in how their digital  workplace operates and as a team we saw a tremendous increase in productivity. For these reasons effective June 9th 2017,we’ve decided to simplify things and rebrand MyIT and MyIT Service Broker to BMC Digital Workplace.


BMC Digital Workplace is available in two tiers: Basic and Advanced. The functionality is the same on-premise and in the cloud.


                                                                                                                                                 *** Click here for BMC Marketplace


We will be renaming the Community and URL's on the week of the 12th of June, this change will be transparent.


The complete list of updates for Service Pack 2 are available in the Digital Workplace 3.3.02 Basic and Advanced release notes.

For further information and comments please refer to our BMC Digital Workplace FAQ

Share This:

Creating and Updating a ITSM Application Request using Service Broker Workflow


Service Broker leverages a Workflow Designer to interact with third party applications including Remedy ITSM providing the ability to create Incidents, Changes and Work Orders.

It also provides the ability to update, query and delete entries using the Set Entry, Get Entry and Delete Entry Activities - however these Activities are currently limited to performing a lookup based on a Entry / Request ID only.


Question: One of the use cases that may appear is how do I create a Work Order and then update the newly created Work Order with values when I only have basic information returned from each Activity?


Answer:  We need to put on our "Remedy ITSM Administrator" hat to understand what occurs during the creation of a request via the ITSM "Interface_Create" forms that Service Broker leverages.


The following steps occur when a request is created via Service Broker, and is the same process followed if creating a request via a third-party interface:


  1. Values are pushed into the applications "Interface_Create" form.
  2. Workflow generates the Application Number e.g. Incident Number, Change Number, Work Order Number.
  3. Workflow validates the information and performs all necessary lookup to retrieve the required information.
  4. If successful, the Entry ID [Field ID 1] of the "Interface_Create" record is returned in the transaction.  Note: This is not the workflow generated Application Number.


To obtain the actual underlying Application Number generated (Incident Number, Change Number, Work Order Number), we need to perform a query back against the "Interface_Create" record using the Entry ID obtained from step 4.


This is standard integration functionality for Remedy ITSM that has existed since the 7.x versions.


Question: How do we obtain the necessary ID's then use these to query and update existing records?


Answer: There are a number of methods that can be utilised, below is one method for Work Orders. The same principles apply across the ITSM applications.  It is recommended during testing to check the returned values using the "Send In App Notification" Activity.


Method One:


Create Update Work Order.PNG


The following lists the steps for the workflow above:


1.  Create the Remedy Work Order using the "Create Remedy Work Order" Activity.  This returns the "Interface Create Entry ID" [Field ID 1] as the Output.  This can be placed into a local parameter (for reuse), or you can use the Output from this Activity directly into the Input of the "Get Entry".

2.  Using a "Get Entry" Activity we query the "WOI:WorkOrderInterface_Create" record, by the Output obtained in the previous step, to obtain a list of values from the Interface_Create record.

          Get Entry Input.png

  • The Output for the Get Entry Activity is actually a Map (list) of key-value pairs (fields/values) from the underlying Remedy record.
  • If looking at the actual underlying code involved in the lookup, it looks something like this:


public Map<String, Object> getEntry(RemedyConnection connection, String formName, String entryId)


Entry entry = this.arApiManager.getEntryByEntryId(connection, formName, entryId);

FormFieldMapping formFieldMapping = getFormFieldMapping(connection, formName);

Map entryMap = getEntryMap(formFieldMapping, entry);

return entryMap;



  • As can be seen (semantics aside), the Output of the Get Entry is actually a "Map" of all the values from the form (formName) used in the Get Entry Java call to the ITSM Remedy application (the 9.x version of Remedy utilises the Java API -  which is what the Service Broker implementation is based on)
  • If you assign the Output to a local parameter, you can obtain the full process JSON string ID for the Output of this Activity that we use in the next steps to extract the key-value pair information, utilising the "Map" containing the result.

        Example - Output mapped to a local variable in the Get Entry Activity:

          Get Entry Output 2.png

  • By looking at the JSON representation of the Process [Clicking on the "{}JSON" button next to "Save" in the Designer], we can obtain the ID for the Output parameter that we will utilise in the next step.  In this case we are looking for the Get Entry Activity within the JSON string (snippet below).  As can be seen below, by allocating the Output to a local parameter in the Get Entry Output Map, we see the full JSON string representation of the Output parameter from the Activity.



      "resourceType": "",

      "version": null,

      "lastUpdateTime": "2017-04-04T17:10:27.934+0000",

      "lastChangedBy": "Allen",

      "owner": "Allen",

      "name": "Get Entry",

      "tags": null,

      "description": "",

      "overlayGroupId": null,

      "guid": "rx-250ebb40-cb9b-4434-9dd2-462974e0bae0",

      "multiInstanceLoopDefinition": null,

      "actionTypeName": "com.bmc.myservice.connect.remedy:getEntry",

      "inputMap": [],

      "outputMap": [


          "assignTarget": "Work Order Id",

          "expression": "${activityResults.rx-250ebb40-cb9b-4434-9dd2-462974e0bae0.output}"



      "runAsUser": null,

      "label": "Get Entry"



3.  Once we have the above JSON representation for the Get Entry Output parameter, we can use this to obtain the individual key-pair values by the "Key".  The "Key" represents the name of the Field on the ITSM Remedy form.  To obtain the "WorkOrder_ID", we need to use the above JSON string along with the "Key" to extract the value.

To do this, we add in the "Key" to the JSON string inside the brackets as follows:




We can now copy the above string into a local parameter (Output Map Parameter) or an input to the next Activity.


The Workflow will display an error, this is due to the Workflow Designer not being able to resolve the expression to internal expression ("icon/parameter"), although it is valid JSON.  You can safely ignore this error (BMC are working on a fix for this behaviour).



Additional values can be obtained from the output parameter by using the name of the Field in Remedy (Database Name) for the target form specified in the Get Entry Activity.





${activityResults.rx-250ebb40-cb9b-4434-9dd2-462974e0bae0.output.Person ID}

${activityResults.rx-250ebb40-cb9b-4434-9dd2-462974e0bae0.output.Customer Person ID}


${activityResults.rx-250ebb40-cb9b-4434-9dd2-462974e0bae0.output.Detailed Description}


4.  Using the "Get Remedy Work Order By Id" Activity, we can obtain parameterised Output values which can be used in the next Activity.  The Output for this Activity has been broken out into the most commonly used parameters by BMC.

** Alternately you could use the same method above with the "Get Entry" to obtain values for any particular form, but you would need to know the Request / Entry ID [Field 1] for the record you want to retrieve the values from **



The above shows the "Request Id" Output parameter from the "Get Remedy Work Order By Id" Activity being used as the "Request Id" input value for a "Set Entry" Activity.

If you check the generated JSON for the Activity, you will see what the "Request Id" Output parameter is known as internally to the Service Broker workflow (you should now start notice the pattern between the internal representation of a parameter, and the "displayed" value in the UI Design"):



      "resourceType": "",

      "version": null,

      "lastUpdateTime": "2017-04-04T20:09:06.952+0000",

      "lastChangedBy": "Allen",

      "owner": "Allen",

      "name": "Set Entry",

      "tags": null,

      "description": "",

      "overlayGroupId": null,

      "guid": "rx-ddd6e18b-90c9-4c3c-bf9b-ea552e94d617",

      "multiInstanceLoopDefinition": null,

      "actionTypeName": "com.bmc.myservice.connect.remedy:setEntry",

      "inputMap": [


          "assignTarget": "connectionId",

          "expression": "\"8aef2088-98f8-43fb-9ea6-4f4585070ce6\""



          "assignTarget": "requestId",

          "expression": "${activityResults.rx-a21dee9b-3c0c-4067-bf10-c6e3480897ef.requestId}"



      "outputMap": [],

      "runAsUser": null,

      "label": "Set Entry"



5.  Once we have the "Request Id", we can use the value in the "Set Entry" Activity for the "Request Id" input.



  • We also need to build an "Input Map" containing the key-pair values we want to pass into the "Set Entry" Activity.  The "Key" again represents the Field Name [Database Name] for the form we intend to update, the "Value" the information we are pushing to the field.


  • We then associate the Input Map to the "Set Entry" Field Values Input.


6.  We can finish of the process with a "Receive Task" Activity to wait for the Completion of the request.



Putting it all together without the Notifications, will look something similar to this:



Which performs:  Create Work Order, return Interface_Create Entry ID > Get Work Order Number from the Work Order Interface Create ("WOI:WorkOrderInterface_Create") form > Get Work Order Entry ID (Request Id) from the Work Order ("WOI:WorkOrder") form > Update Work Order (WOI:WorkOrder) with required values > Wait for Work Order completion




This demonstrates using the OOB provided activities to create and update the Work Order.  The same principles can be applied to the Incident and Change Management, and if wanting to update multiple times throughout a process workflow then it is recommended to store the ID's required in a local variable that can be reused.


Currently there is no OOB Activity in Service Broker to perform a query based lookup against a form in ITSM Remedy, so you will need to know the Entry / Request ID of the forms that you need to pull information back from or push information into.

Share This:



Logging Table

$AR_SYSTEM_HOME default is "/opt/bmc/digitalworkplace".


Problem Area

ITSM/SRM integrationCombined API/SQL/Filter logging while reproducing the problem, arerror log, remote action log



Workflow DesignerBundle log, F12 Browser Developer Mode/process log$AR_SYSTEM_HOME/db
UIBundle log, Jetty log, F12 Browser Developer mode & Fiddler$AR_SYSTEM_HOME/db
ConnectorsBundle log, arerror log, F12 Browser Developer mode, Connector logging$AR_SYSTEM_HOME/db
ReportingBundle log, arerror log$AR_SYSTEM_HOME/db
DWP Client Integration

Bundle log, debug on the DWP side, F12 Browser Developer mode & Fiddler
DWP Catalog debug level



ApprovalsCombined API/SQL/Filter logging while reproducing the problem, remoteaction.log, bundle.log, arerror log



Installationarsystem_install_log.txt, startup logs



Post Install scriptsarerror log, post install log



RSSOarjavaplugin & bundle log, rsso agent logs, rsso debug$AR_SYSTEM_HOME/db
User Group Syncuser synch log, debug log combined api & SQL logging


"/src" directory

Catalog Workflow*dwpc_process.log$AR_SYSTEM_HOME/db/tenant/dragonfly/coffeecom/db
Catalog communication*dwpc_api.log, dwpc_sql.log


*Available from 19.11 only

Tip: To quicky get the bundle log without having to log into the server, type the following in your browser (where dwpchostname is the name of the Catalog Server).


Similarily, the following will also retrive the DWP log



Catalog File System


Most of the Catalog related files are contained within the "digitalworkplace" directory, some of the more important directories and files are highlighted in the following illustration



OSGI Console


The Catalog application is run through a variety of different bundles which are loaded once the "dwpcontroller" script is run as part of an platform restart. Unlike the DWP Client, we cannot restart the individual components of the Catalog (without negative consequence) however we can check the Catalog's bundle status by using the Eclipse OSGI Console (Open Services Gateway Initiative).


The logging level for OSGI is controlled in the  "$AR_SYSTEM_HOME/conf/" file



# Enable osgi console for debugging


osgi.console = 12666

To connect to the console you simply telnet to the Catalog host and execute the "ss" command.


[root@clm-aus-123]# telnet localhost 12666


Some of the more important Catalog related bundles can be identified by "myservice"


If you notice any of these bundles are in a "RESOLVED" state you can attempt to restart as follows:


Stop "ID#"

Start “ID#”

In the event the Catalog login page becomes unavailable for all users, restart the "com.bmc.myservice.uiservice-war_0.0.1" and try again. If you are still unable to log in please raise a case with BMC Technical Support. Type "disconnect" to end the session !


The connectors and bundles are held within the $AR_SYSTEM_HOME/deployedsmart bundles directory.
























DWP Controller Scripts


The "rxscripts" directory and sub-directories contain many scripts which are called by the Catalog but in some cases you may also run them manually.


/bin/        Checks migrations

/bin/             Gets called by the post install script

/bin/                  Checks the current user who’s in the current session

/bin/tenant/                     Lists all the tenants

/bin/tenant/                 Deletes a tenant

/bin/connector/         Refreshes the available connectors

/bin/         Checks if the Catalog is up or down

/bin/                               Used to log into Remedy from the command line

/bin/             Get's called when DB migrations are required

/bin/                            Sets up the environmental variables to allow the API endpoints

/bin/                  Get’s called by the post install script

/bin/                          Get's current version by running

/bin/service/              Lists all catalog services visible by the current DWP user

/bin/process_def                      Remove/find workflow

In order to run these scripts you need to set up your environmental variables by sourcing the "" script

[root@clm-aus-123 bin]# source


Once you source the "setenv" script you then need to log into the Catalog from the command line and generate an authentication cookie. Once the mycookies key is generated subsequent scripts (provided they are in the same directory as the mycookie.txt) will run.


[root@clm-aus-123 bin]# ./ password




[root@clm-aus-0123 bin]# ls -lrt

-rw-r--r-- 1 root root   610 Jun 15 14:59 mycookies.txt


In the following example I'm running the "" script to obtain information about a problematic tenant. We can also delete and recreate a tenant using the post install scripts (be careful deleting..)

[root@clm-aus-123 bin]# tenant/

{"totalSize":1,"data":[{"name":"coffee","domainIdentifier":"","tenantId":"f53893b1d382","databaseName":"ARTenantCoffee","status":"Enabled","overlayGroupId":"f53893b1d382","activationStatus":"Completed"}]}[root@clm-aus-0123 bin]#

[root@clm-aus-123 bin]# tenant/ coffee   


Stopping & Starting the Catalog


We use the "dwpcontroller" script from the $AR_SYSTEM_HOME directory to restart the Platform and Catalog application

This script also restarts the Platform

[root@clm-aus-0123 digitalworkplace]#./dwpcontroller [-u $user_name] [-p $password] <stop|start|restart>


The "start" option calls “/sb/” which does the following:


  • Runs “$AR_SYSTEM_HOME/bin/arsystem start”
  • Checks if the DB/Port is up
  • If the DB is up it calls another script which checks the bundles status
  • If bundles are up another migration script runs which checks the DB to see if anything has changed (such as JARs) and may update a column or add a new table.


logback_server.xml debug


Logging level is controlled within the "logback_server.xml" which is located in the $AR_SYSTEM_HOME/conf directory


Please backup the logback_server.xml before making any changes, XML mistakes may impact the Catalog on start-up.

level=all    Best level of debug but can impact performance



  <appender name="BUNDLE" class="com.bmc.arsys.logging.ReconfigurableRollingFileAppender">








                <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">



                <!-- Extra param to say log file creation at startup -->



                        <pattern>%d{MM-dd HH:mm:ss.SSS} %-4le %c %m%n</pattern>





From 19.02 + you can control Catalog logging from the settings page.


RSSO debug can be written to the bundle log by adding the following lines under the existing bundle section.


   <logger name="com.bmc.rsso" level="DEBUG" additivity="false">

                <appender-ref ref="BUNDLE" />



RSSO logging is enabled by making the following changes:


a) $AR_SYSTEM_HOME/pluginsvr/log4j_pluginsvr.xml file


<logger name="com.bmc.arsys.pluginsvr">

<level value="debug" />




<priority value ="error" />

<appender-ref ref="PluginLog" />


b) $AR_SYSTEM_HOME/bin/arserverd.conf. Go to the last of the jvm.option.xx. on the next line, add this (make sure the number is +1 of the previous line. In this example, the previous line was 24)


c)  $AR_SYSTEM_HOME/conf/rsso-log.cfg





And restart (dwpcontroller stop/start).


RSSO Diagnostics


Starting with 19.02 we have a new diagnostic tool which checks RSSO configuration is correct. This tool is located in the $AR_SYSTEM_HOME/sb/configure_rsso directory. To run open the "" script and make sure it's the paths and diagnostic file name is correct:




# Path to Catalog directory.






if [ $# -eq 0 ]; then






if [ "X${JAVA_HOME}" = "X" ]; then






${JAVA_EXEC} -jar ${DIAGNOSTIC_JAR} ${params[*]}


Once run the output should look something like this:


[root@clm-aus-123 configure_rsso]# ./

05:13:11.164 -

Common validations:

05:13:11.167 - All RSSO agent jar files are in place in '/opt/bmc/digitalworkplace/deploy' and '/opt/bmc/digitalworkplace/pluginsvr'

05:13:11.167 - All RSSO agent config files are in place in '/opt/bmc/digitalworkplace/conf'

05:13:11.167 - Your RSSO agent version is ''.

05:13:11.167 - It is recommended to have RSSO agent of version '19.5'.

05:13:11.167 - Your RSSO server version is '18.05.00'.

05:13:11.167 - It is recommended to have RSSO server and agent of same version.

05:13:11.167 -

Validating '' file in '/opt/bmc/digitalworkplace/conf':

05:13:11.168 - agent-id is dwpid

05:13:11.168 - Agent id should be the same on all DWP-Catalog nodes

05:13:11.168 - sso-external-url is http://<servername>:8080/rsso

05:13:11.168 - HTTPS is recommended for external URL

05:13:11.168 - sso-service-url is http://<servername>:8080/rsso

05:13:11.168 - http://<servername>:8080/rsso is accessible

05:13:11.169 -

Validating 'rsso.cfg' file in '/opt/bmc/digitalworkplace/conf':

05:13:11.169 - rsso.cfg file is configured correctly


Web Server (Jetty)


Jetty logging can be very useful to capture HTTP traffic and is enabled by un-commenting the following section and changing the log level

       <!-- Jetty Logging - uncomment block if jetty logging is required -->

    <appender name="JettyLog"





                <rollingPolicy class="com.bmc.arsys.logging.StoredRollingPolicy">












                        <pattern>%d{EEE MMM dd HH:mm:ss.SSS yyyy} %m%nopex%n</pattern>



        <logger name="org.eclipse.jetty.server.Server" level="all" additivity="false">


If there are connection issues which are observed in a Server Group, the following command will help analyze the traffic (where ens192 is your network adapter)


tcpdump -A -i ens192 port 8008


Connector logging


Connector logging is available from 19.02. To enable, change the log level to "all"



        <logger name="com.bmc.myservice.connect.remedy" level="all" additivity="false">

                <appender-ref ref="connect-remedy" />


        <logger name="com.bmc.myservice.connect.commons-ar" level="all" additivity="false">

                <appender-ref ref="connect-remedy" />




You can also test the connector from the DWP Catalog Admin page.


The following screenshot is indicating that the DWP ITSM Integration patch needs to be updated.




Process logging

From 19.11 we have a new logfile which records process activity. Please refer to the logging table for further details.

Backup the logback_server.xml and add the following to the end of the file.

<!-- Process -->

        <appender name="ProcessLogToForm" class="com.bmc.arsys.logging.SubscribableAppender">


        <appender name="ProcessLog" class="com.bmc.arsys.logging.SiftingTenantAppender">

                <appender class="com.bmc.arsys.logging.SuspendableRollingFileAppender">



                        <!-- <param name="Encoding" value="UTF-8" /> -->



                        <rollingPolicy class="com.bmc.arsys.logging.StoredRollingPolicy">















  <logger name="" level="debug"


                <appender-ref ref="ProcessLog" />

                <appender-ref ref="AlwaysOnLog" />

                <appender-ref ref="ProcessLogToForm" />


        <logger name="" level="debug"


                <appender-ref ref="ProcessLog" />

                <appender-ref ref="AlwaysOnLog" />

                <appender-ref ref="ProcessLogToForm" />




                level="debug" additivity="false">

                <appender-ref ref="ProcessLog" />

                <appender-ref ref="AlwaysOnLog" />

                <appender-ref ref="ProcessLogToForm" />


        <logger name="" level="debug"


                <appender-ref ref="ProcessLog" />

                <appender-ref ref="AlwaysOnLog" />

                <appender-ref ref="ProcessLogToForm" />


        <logger name="" level="debug"


                <appender-ref ref="ProcessLog" />

                <appender-ref ref="AlwaysOnLog" />

                <appender-ref ref="ProcessLogToForm" />


        <logger name="" level="debug"


                <appender-ref ref="ProcessLog" />

                <appender-ref ref="AlwaysOnLog" />

                <appender-ref ref="ProcessLogToForm" />


Then log into the mid-tier (Catalog) as dwpadmin and navigate to Sever Information > Log Files and tick "Process Log".

You need to perform an "dwpcontroller stop/start" for the changes to take effect. Pease remember to turn off this logging if it's no longer requied.

Startup issues


Navigate to the $AR_SYSTEM_HOME/sb/rxscripts/bin directory and uncomment the following line from the script

#export rx_trace="--trace-ascii ./trace.log"

unset rx_trace


Stop/start the Catalog again and check the trace log for errors.


Catalog Bundle log


Almost every troubleshooting scenario will require analysis of the bundle log. Here's an example of what a "healthy" bundle log looks like.


05-05 15:56:26.419 DEBUG com.bmc.myservice.connectors.service.ConnectorSrvImpl testing URI http://localhost:8008/api/sbe/connect/remedy]

05-05 15:56:26.520 DEBUG com.bmc.myservice.connectors.service.ConnectorSrvImpl connector URIs [http://localhost:8008/api/sbe/connect/baopoc]

com.bmc.myservice.connectors.service.ConnectorSrvImpl connector URIs [http://localhost:8008/api/sbe/connect/ad]


As you can see, DEBUG is enabled and it's constantly looping around checking each connector status. The following example demonstrates how you would use the bundle log to troubleshoot a typical problem.


  • In the screenshot below I have submitted a Service Request in DWP and you can see it's gone into a fault status.





The first step is to open a session in the “$AR_SYSTEM_HOME/db” directory and run a "tail" on the log.

  • [root@clm-aus-0123 db]# tail -f bundle.log

This command gives you a live feed of what's happening within the log.


  • In the example below I can see my Service Request is faulting because a required field is empty...


at sun.reflect.GeneratedMethodAccessor636.invoke(Unknown Source) ~[na:na]

        at sun.reflect.DelegatingMethodAccessorImpl.invoke( ~[na:1.7.0_95]

        at java.lang.reflect.Method.invoke( ~[na:1.7.0_95]

        at com.bmc.myservice.common.util.SrvInterceptor.invoke( ~[com.bmc.myservice.common-1.0.00-SNAPSHOT.jar:1.0.00-SNAPSHOT]

        ... 94 common frames omitted

Caused by: com.bmc.arsys.domain.etc.ARException: ERROR (100): Required Entry ID is empty.; form: rxn:/myit-sb/ServiceRequest

        at com.bmc.arsys.server.domain.validation.EntryValidatorImpl.validateEntryId( ~[na:na]

        at com.bmc.arsys.server.domain.validation.EntryValidatorImpl.validateGetEntry( ~[na:na]

        at com.bmc.arsys.server.domain.validation.handler.EntryValidationHandler.validateGetEntry( ~[na:na]

        at com.bmc.arsys.server.domain.service.impl.EntryServiceImpl.getEntry( ~[na:na]

        at com.bmc.arsys.server.facade.impl.EntryFacadeImpl.getEntry_aroundBody10( ~[na:na]

        at com.bmc.arsys.server.facade.impl.EntryFacadeImpl$ ~[na:na]

  • Here's another example where I submit another Catalog Request from the DWP Client and the bundle log is telling me that I need to define an Work Order Manager on the ITSM side.

Caused by: java.lang.reflect.InvocationTargetException: null

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_95]

        at sun.reflect.NativeMethodAccessorImpl.invoke( ~[na:1.7.0_95]

        at sun.reflect.DelegatingMethodAccessorImpl.invoke( ~[na:1.7.0_95]

        at java.lang.reflect.Method.invoke( ~[na:1.7.0_95]

        at ~[na:na]

        ... 80 common frames omitted

Caused by: com.bmc.myservice.connect.exception.ConnectorException: ERROR (1440853): ; No work order manager group could be found. Manually select a group from the menus. If no group with an individual in the functional role of work order manager is defined, notify your System Administrator.

        at ~[na:na]

        at ~[na:na]

        at ~[na:na]


Most errors are now visible by simply opening the Request from the Console:




Installation and Upgrade


The installation script will inform you if there are any problems. Full details are available within the "arsystem_install" log which is located in the /tmp directory. To obtain a live feed on installation progress, just run a "tail" on the log as follows:


[root@clm-aus-0123 tmp]# tail -1000 /tmp/arsystem_install_log.txt


The following extract is an example of a successful installation.


(Dec 15 2016 03:54:59.677 PM +0530),INFO,com.bmc.install.utility.logging.Log,


  BMC Remedy Action Request System 9.5.00 install succeeded.


(Dec 15 2016 03:54:59.697 PM +0530),INFO,com.bmc.install.product.base.installer.InstallCompletionInstallationTask,

  PROGRESS EVENT {Description=[installCompletion.installCompletion.description],Progress=[100],Detail=[installCompletion.installCompletion.complete]}

(Dec 15 2016 03:54:59.917 PM +0530),CONFIG,com.bmc.install.product.base.project.runner.ProjectRunner,

  LOG EVENT {Description=[COMPLETED InstallationTask],Detail=[com.bmc.install.product.base.installer.InstallCompletionInstallationTask]}

If the installer fails and the arsystem log doesn't identify the root cause, run the uninstall script (make sure you also remove any Catalog DB references if present) and run the script again in verbose mode as follows:

bash -x ./

This command will output a detailed log to the terminal. In the event of a failure the output will stop allowing you to scroll up and identify what was happening at the time.

Please back up the Catalog Databases and file-system before upgrading. In the event you encounter a problem you can quickly roll back and send the logs to BMC Technical Support.

Connector Refresh


There may be occurrences where your connectors are no longer visible in the Console. If this is the case try running the connector refresh script as follows:


[root@clm-aus-0123 rxscripts]# source bin/


./bin/ password


Approvals & ITSM Integration


The 'MyITSB- Approval' process is responsible for sending the approval request from the Catalog to the ITSM Server. When a Service Request is raised from the DWP Client, the corresponding workflow on the Catalog machine is triggered which in-turn calls a Catalog 'Request Approval' process which communicates with the AR Server to create the Manager approval.



Once the Request has been approved by a manager, remedy workflow kicks in and attempts to send the data back to the Catalog via the "remoteaction.bat" file. This file along with the contents of the "remoteaction" directory are implemented by the Integration Server Patch.

Make sure the remoteaction script/batch file has the correct Java path


If there's a problem getting the correct approval status reflected in DWP the first thing to do would be to enable filter/API logging on the ITSM Server before reproducing the problem. This way you should be able to see the relevant filters triggering the approval change and sending it back to the Catalog Server.


The next step would be to open the "SB:ServiceRequestStub" form on the ITSM Server and check the “Error Message” box. In the example below it's complaining about a timeout reaching the Catalog.


Make sure the "SB:LocalApprovalConfiguration" & "SB:RemoteApprovalConfiguration" Approval forms on the ITSM AR Servers have the correct information.

There is also a "remoteaction" log file (enabled in the logback_remoteaction file) which will allow you to track the status transmission back to the Catalog.



ITSM Integration


The following illustration depicts the process flow when submitting a request from DWP. As both Approvals and ITSM use a combination of the remoteaction.xml and associated JAR files in combination with remedy workflow, we will use the same troubleshooting methodology as above for Approvals.



The "Status Change" filters have changed names over the releases...


The "SB:TestRemoteAction" form is also useful to quickly test ITSM/Catalog integration. Any errors will be reported in the "Test Results" box.




Browser Tools


Once Developer Mode (F12) is enabled check the network tab response and look for any exceptions. The screenshot below illustrates how I've captured the root cause of a problem by simply clicking on the REST call and selecting the response (Fiddler logging is also very useful when checking Client > Catalog traffic).



Ensure the DWP Catalog is reachable and the fully qualified domain name is being used.


Don't forget, the users must exist in both the user form on the Catalog Server (which is populated via the sync script) and CTM:People form within ITSM


DWP Client Catalog Debug


This debug can be useful when troubleshooting any issues related to viewing or submitting Catalog Services within the DWP Client.


To enable, open the logback-dwp.xml from the "/opt/apache/tomcat8.x/external-conf" directory and change these two extracts.


  <!--Logging of DWP Catalog -->

  <property name="LOG_DWP_CATALOG" value="true"/>


  <!--Optional DWP Catalog logger-->

  <if condition='${LOG_DWP_CATALOG}'>


      <logger name="" level="debug" >

        <appender-ref ref="DWP_CATALOG_FILE"/>


      <logger name="" level="debug" >

        <appender-ref ref="DWP_CATALOG_FILE"/>


      <logger name="" level="debug" >

        <appender-ref ref="DWP_CATALOG_FILE"/>





After the scan period of 60 seconds a new log file (dwp-catalog.log) will be created in the DWP/Logs directory.

Share This:

We are excited to announce many new enhancements to support a richer more engaging service catalog with MyIT and MyIT Service Broker. In this latest release, we are introducing new capabilities for enhancing your service catalog even more. Dynamic content helps boost engagement.


MyIT Pyramid.PNG


Broadcasts, Location & Service Health are not available in MyIT Self Service

**Only Available with Digital Workplace OnDemand, Service Broker OnDemand 3.3.01 and DWP 3.3.02




User Experience Highlights




Catalog Starter Kit


If you're using MyIT for the first time you'll be treated to a selection of sample Service Requests




Banner Management


Create promotional Banners to display in the Catalog


Triggers actions or launch External URL's by tapping or clicking on a Banner


Banners are available in multiple sizes



Profile Enrichment


Digital Workplace OnDemand now offers profiles which can include multiple images, videos, ratings and reviews


Enriched Profiles.PNG



Search Approvals based on String or Type


Quickly filter or search for Approvals




Shopping Cart


The Shopping Cart is now available for MyIT Digital Workplace On Demand







Users can now rate their experience using Surveys which are presented on both the Universal Client and Device (SRM & HRCM only)







Administration/Architectural Highlights


Questionnaire Library


Create your own Questionnaire Library within MyIT Service Broker




New Workflow Designer


Use the same Workflow Designer as the Innovation Suite



Workflow Designer.PNG


Query Remedy forms


Configure Service Broker to retrieve data from Remedy forms




Delete or Preview Workflow


Quickly Delete or Preview Workflow

Preview Delete Workflow.PNG


Check Service Broker Process Status


More control & view of Service Broker Services


Process View.PNG


Import Categories


Import and Map External Categories


Import Categories.PNG



MyIT Superbox Customization


Quickly customize the Superbox with your own text



Save the new text and it becomes available in both the MyIT Universal Client and Device




Universal Client Rebranding Tool


Upload a new Company Logo & change the Background Image


Change common background and text coloring or add additional CSS styling


Change the navigation color & logo


Click to download the compiled the code and the new style becomes available once it's copied to the MyIT Server




iOS Rebranding Tool


Style the MyIT iOS application and hard-code with the MyIT Server name/port



Once resigned & deployed, the changes are reflected on the Device.






MyIT User Report



Run a Report to check user activity


MyIT Health Check Report


Kick off the MyIT Health Check utility using a Batch file



MyIT Diagnostics now checks BMC Remedy Single Sign-On




MyIT Service Broker Connectors


New Amazon EC2, BMC Client Management, Office 365, Jira and Microsoft Azure Connectors



Compatibility Details


This release is also compatible with Remedy ITSM 8.1 SP1 +, TrueSight 8.6 +,BMC Client Management 12.0, HRCM 4.7 & BMC Atrium Orchestrator 20.16.02 +


Next Steps


  • Read everything you need to know about MyIT & MyIT Service Broker
  • For a comprehensive summary of all MyIT & MyIT Service Broker enhancements please refer to the following documentation


BMC MyIT Service Broker 3.3 Enhancements

BMC MyIT 3.3 Enhancements

Share This:

Future versions of MyIT after 3.2 will be retiring the following features:


  1. Remedyforce and AppZone will no longer be supported in MyIT. MyIT 3.2 is the last version supporting those integrations.
    Existing installations of MyIT will not be affected.
  2. The “ Support" Tab will no longer be available. The features of the support tab and additional capabilities are available through the Service Catalog.
  3. Off-line support in the mobile app will be removed to provide better performance



Support Tab
Service Catalog



Why is MyIT ending Support for AppZone?

MyIT Digital Workplace OnDemand has made significant enhancements with their publication and promotion technology over the last year.  We are focusing R&D investment in MyIT and MyIT Service Broker. These products provide a modern and improved experience for publishing and managing your service catalog, along with extending the capabilities to allow for more granular control of the content published. Customers with existing installations of MyIT 3.2 or earlier and AppZone will not be affected and can continue using the products. AppZone will not be turned off until the end of the support shown below.


What is the replacement for AppZone?

The next version of MyIT Digital Workplace OnDemand will provide similar functionality to AppZone with additional enhancements to banner management.  The only exception is the ability to recommend apps from commercial app stores, though this capability is lightly used by customers


Why are we decoupling MyIT and RemedyForce

Remedyforce provides several self-service options. The majority of customers utilize the native Remedyforce capabilities because they find these native self-service capabilities meet or exceed their needs. Additionally, with the Summer ’16 release, RemedyForce team have closed the primary gaps to deliver full functioning self service capabilities for mobile users via Salesforce1.


The “Support" Tab

We have taken the best of both AppZones' rich media capabilities, including rich profiles, banners management, and rich icons, and added it to the browsing and discovery capabilities of the support tab, in our Unified Catalog experience. The catalog experience provides additional capabilities not found on the Support Tab. Within the catalog experience, you can setup sections to promote your top requested items, or content you wish to be more visible on first entry. We also support detailed discovery though the standard tree based category dropdown lists. Sections in MyIT. This coupled with enhancements to the searching capabilities provide a intuitive rich experience for your end users.


How long will MyIT 3.2 be supported with these features?

BMC’s support policy is to provide full support for at least 3 years from the (GA) date.  This includes service packs, patches, hotfixes, or workarounds to enable the product to operate in substantial conformity with its then-current operating documentation.  BMC will provide full support  for MyIT 3.2 until June 23, 2019.  For more details on BMC’s support policies, please refer to the following link.


For more information, please review the FAQ’s attached, related to each of the items mentioned above



Share This:

BMC Education Services is getting many requests from customers to provide end user training for MyIT, mostly as web-based training. In fact, we are experts in providing both standard and custom end user training...or giving our customers' L&D teams a head start by providing content for them to customize themselves.

If you cannot access the video above, or you need more information, please contact Thomas Hogan (EMEA) Brian Hall (AMER) or Rodney Morton (APAC) or email


Here's an overview of the My IT End User Training offering (data sheet also attached):


Accelerate software adoption with end user training

Screen Shot 2016-07-14 at 1.58.15 AM.png


Organizations frequently deal with issues when employees don’t understand why a new software system has been implemented and how the software makes their jobs easier. Untrained employees tend to work around a new system, rely heavily on technical support, and use fewer features than provided. As a result, employee productivity declines and business costs increase.


Screen Shot 2016-07-14 at 1.58.06 AM.png


BMC Solution Training for End Users is an Education Services offering that boosts useradoption and speeds the time to value of a technology solution. We bring together the expertise, resources, and methodologies proven through deployments in hundreds ofglobal organizations to help you design, create, and distribute your enablement program and assets. We customize a program and materials to reflect your organization’s uniquevision, system implementation, and specific end user training needs, and make training available through your own learning management system (LMS). You can choosemultiple asset types or just one, including quick reference guides, interactive,web-based training, instructor-led learning, and more.



BMC Solution Training for End Users provides a variety of content options, from standard to custom.

Standard content – Receive out of the box content, without access to source files or the ability to edit

Tailored content – Use training modules that are specific to your organization’s needs

Licensed content – Access source files, training guides, and train-the-trainer information

Custom content – Build content specific to your business needs



Speed time to deployment – Accelerate adoption of new software with training from BMC experts

Improve productivity – Increase work efficiency and streamline business processes

Reduce costs – Decrease technical support requests and overall business costs


Dirk Braune Heather Leventry Mark Gradwell Marike Owen Alf Abuhajleh Delise Jung Tom Luebbe Chhabi Chauhan Mitch Myers Geoffrey Bergren Antoinette Kaftan-Kaemerow Erwann NEDELEC Gary Bersh Paul Cutsuvitis Kodi Rowden Crystal Mendell susie clare Fabienne de Beaufort sara hepner Shafath Syed David Giles

Share This:

MyIT & MyIT Service Broker 3.2 is available. This release is also compatible with Remedy ITSM 8.0 and later & TrueSight 8.6, 9.0, 10.0 & 10.1.




Feature Highlights


  • Quickly find what you're looking for with our new Navigation Bar
  • Upload Custom Icons to your Requests
  • New Device style and Notification Alerts
  • Receive Bell Notification with Service Request Comments
  • Review Knowledge Articles and provide Feedback or Comments
  • Map HRCM Requests to Appointments
  • Cancelling a HRCM Appointment also Cancels the associated HRCM Request
  • Support for High Availability to include the AlwaysOn feature.
  • Check MyIT Health Status using our new Web Utility
  • Run MyIT Diagnostics for an in-depth Tech Status
  • MyIT Service Broker Style & Quantity Enhancements
  • Impersonate with MyIT Service Broker Integration
  • Export & Import Services into MyIT Service Broker
  • MyIT Service Broker CMDB Integration
  • Cross Launch to External Systems
  • New MyIT Service BrokerConnectors



MyIT Enhancements


Universal Client Design


New look and feel for the Universal Client.



Choose your own custom icons for Service Requests.

Select Icon.PNG



Before After Icons.PNG

Share deep links to Categories.




Device Design


Restyled Device with easier navigation.


New Login Background.PNG




Condensed Navigation.PNG


Restyled Catalog & new Alert banners.



Bell Notification


If a Service Request has been updated you'll see a new Bell notification in the Client.




Knowledge Article Enhancements


Quickly flag a KA in MyIT and send the feedback to BMC Remedy Knowledge Management.






MyIT KA Comments are reflected in BMC Remedy Knowledge Management.





Check out the most popular HR Articles or Solutions in MyIT.




Map HRCM Requests to Appointments


You can now map HR as well as SRM Requests to Appointments.


Just like a Service Request, if you cancel an Appointment it also cancels the associated HRCM Request within BMC HR Case Management.




MyIT Health Check Utility


For a quick Health check just add "healthcheck" to the end of your URL as shown below.



MyIT Diagnostic Utility


Save time on root cause analysis by running MyIT Deep Dive diagnostics




MyIT Service Broker Enhancements


MyIT Service Broker Integration Style


New look and feel for MyIT Service Broker Requests.



Pick and choose your own items within a Bundle.





Provide the ability for someone like an administrator to impersonate another user.



Experience logging into another users profile and submitting Services on their behalf.






Choose the number of Service Broker Requests you want to submit.




Once submitted view the quantity from "My Activity".




Import & Export Services


Import multiple Services retaining workflow and questions.



CMDB Integration


Associate natively created MyIT SB Services to your Service Model.

CMDB Integration.png

Link-out Functionality


Cross launch to external systems.


SB LaunchExternal.png





Leverage even more Applications or Services.

SB Connectors.PNG


Next Steps


  • Read everything you need to know about MyIT & MyIT Service Broker online.
  • Download and enjoy !


For a comprehensive summary of all MyIT & MyIT Service Broker enhancements please refer to the documentation links below:



MyIT Service Broker


To listen to Product Management provide an overview please check out the video below !


Share This:

MyIT 3.1 is available !


This release is also compatible with Remedy ITSM 7.6.04 SP2 and later & TrueSight 8.6, 9.0, 10.0 & 10.1. You can now upgrade directly from several releases (2.5, 2.6 & 3.0).





Feature Highlights


  • Use BMC MyIT to open HR cases and search HR knowledge articles (available since 3.0 SP1)
  • Upgrade an existing BMC MyIT server and integrate it with BMC HR Case Management.
  • MyIT Service Broker integration enhancements
  • Browse through Categories (available since 3.0 SP1)
  • Add Knowledge articles to a section
  • Be selective with your search results and preview knowledge articles
  • Share Deep link Service Requests, Knowledge Articles, Catalog sections and Service Broker profiles
  • Quickly view comments or updates using Deep link email notification
  • Open AIF in new window is optional
  • MyIT Appointments can now generate Service Requests or Incidents
  • If your installation/upgrade failed, you can now correct the error and rerun the installer




HR Case Management

HR Case ManagementUC.PNGHR Case Management.PNG




MyIT Service Broker










Knowledge Catalog section

Choose KA.PNGRKM Bucket.PNG


Advanced Search & Preview

MyITSearch.PNG RKM Preview.PNG


Deep link Share

MyITShare1.PNG MyITShare2.PNG MyITSearch3.PNG


Deep link email notification






Configure Service Request appointment



AIF iFrame









A comprehensive summary of all MyIT & MyIT Service Broker integration enhancements is available here


Next Steps


  • Read everything you need to know about it here
  • Download MyIT & enjoy !
Share This:

MyIT leverages the power of social media to help your employees take Digital innovation to the next level.  We live in an age where collaboration needs to be seamless and information has to be just a few clicks or taps away. 




Social Data Model


MyIT Social is a combination of Node.js (java script engine) and MongoDB.




When you log into the Universal Client and look at the Updates tab, most of this activity stream is actually being retrieved from MongoDB. For example whenever you comment, like, share or view the timeline you are actually inserting/viewing  this information to and from MongoDB.





As you can see from my illustration below, the Web UI layer (Angular.js) utilizes Node.js to send and retrieve data to and from MongoDB. This works particularly well as both Node.js and MongoDB use Javascript and JSON.



So what happens when you create or update a Service Request from MyIT or the Mid-Tier ?


1) Tomcat communicates directly to AR System via the REST API

2) Workflow is triggered and data is copied to the relevant AR System forms

3) The SEM plugin is called and a reference of the SR is created in Social


So let's see what happens under the hood when you post something on the wall:


1) Tomcat makes a POST request


Reqest is made with the following payload:


{"text":"Anyone know where Tom is ?","type":"microblog"}  (This will be converted into the social API parameter)


2) The Service layer (Tomcat) then calls the Social service API (node.js)




Data is inserted into MongoDB at this point a response is sent back to social:


[2016-02-25 04:47:33.811] [INFO] [default] - POST params:{"userId":"appadmin","tenantId":"000000000000001","text":"Anyone know where Tom is ?"}

[2016-02-25 04:47:33.833] [DEBUG] [default] - New microblog created for id:56cedbc589ac8ed009e6fc8a



id - This is only for a microblog

guid - This is for INC/REQ/WO


And for the activity stream:


1) Tomcat makes a GET request


2) The Service layer (Tomcat) then calls the social service API (node.js)




...and the response is sent back.


Activitystreamrespons1.PNG Activitystreamrespons2.PNG


As you might have guessed, we need both Node.js and MongoDB to be fully functional to use MyIT. So how can you find them ? Well, you'll find node.js running as a process on Linux:




In the event you make any changes to the config.js (social configuration file in the social directory) or you need to restart it, you'll find the startup/shutdown scripts in the "/etc/init.d" directory. If they're registered you can also restart by using the stop/stop command as shown below:



If you're looking for it on Windows, node.js is actually listed as a service called "MyITSocialService"



Now that we've gone through Node.js, let's get into more depth about it's humongous partner in action - MongoDB. At a high level, MongoDB is a document-oriented DBMS, similar to MySQL but with JSON-like objects comprising the data model rather than RDBMS tables. For those of you familiar with SQL, the following illustration will help you understand the terms:



Connecting to MongoDB


MyIT/Smart IT is shipped with MongoDB but if you're planning on setting up a replication set you'll need to download the package from and configure it (see link at the bottom of this blog).

You can connect to MongoDB by navigating to the mongo "bin" directory and typing "mongo". In the screenshot below I'm connected to our Social Database (social) which is created when you run the MyIT/SmartIT installer. By default, mongo enters the shell and connects to the "test" database but you can easily switch over to social by typing the "use  social" command.





The other alternative is to use a GUI such as UMongo, RoboMongo or MongoChef.  In the example below I'm using MongoChef to connect to the primary MongoDB Server of my Replication set.


Note: The secondary servers are set up for write only which is why I'm connected to my primary to read the data. On the other hand, if I was already connected to the shell on secondary I could just type "rs.slaveOK()" and this will allow read operations to run.


MongoChefSetup.PNG MongoChefSetupUser.PNG


As soon as the connection is successful you'll see a nice graphical representation of your Social DB.There are some additional features of this tool such as "intellishell", "Query builder" and "Export". "Intellishell" allows you to quickly open the shell from inside the GUI and execute commands as normal. "Query builder" is particularly useful if you're performing complex searches and "Export" helps you export out as many collections as you like.




The following table will give you an idea what each collection contains:




MongoDB Replication


Replication is the process of synchronizing data across servers to ensure high availability so if you're running in a production environment it's highly recommended you consider this.


The following three-member replica set has two secondary members. The secondaries replicate the primary’s oplog and apply the operations to their data sets.


Replication Set.PNGMongoDBReplicaSet.png


When a primary does not communicate with the other members the replica set will attempt to select another member to become the new primary. The first secondary that receives a majority of the votes becomes primary.


MongoDB 3.0 Wired Tiger


Starting with MyIT 3.0 we now bundle MongoDB 3.0 which comes with Wired Tiger - MongoDB's new high performance Engine. It isn't setup by default when you install MongoDB so there are two ways of enabling it:


a) For a new setup, follow the steps in our MongoDB documentation at the bottom of this Blog.


b) From an existing MongoDB 3.0 replication set without WT enabled


1) Stop MongoDB on one of the secondary’s

2) Add "storageEngine = wiredTiger" to the mongo.cfg file

3) Backup & delete the data in the mongodata directory

4) Start MongoDB and the data will be copied over from one of the other MongoDB servers in the replication set.


Note: The format of the Mongo data will now change to Wired Tiger.


Wired Tiger Format.PNG


5) Go to current primary and do "rs.stepDown()" and stop the mongo service


This will force the database into secondary and trigger one of the other servers into primary mode.


6) Add "storageEngine = wiredTiger" to the mongo.cfg file

7) Delete the data in the mongodata directory

8) Start MongoDB

9) Stop your remaining secondary

10) Add "storageEngine = wiredTiger" to mongo.cfg

11) Start MongoDB


Troubleshooting MongoDB/Node.js


If there's a problem with node.js you may see your data dissapear from the Universal Client and a connection error:




MongoDB on the other hand might just show a spinning wheel:



In the event you see either of these symptoms:


  • Check the MongoDB and the Social Services are running


a) For MongoDB on Linux issue the following command:


[root@clm-aus-000627 ~]# ps -ef | grep mongo

root    15236    1  0 Aug17 ?        06:52:24 /opt/bmc/Smart_IT_MyIT/Smart_IT_MyIT/mongodb/bin/mongod --fork -f /opt/bmc/Smart_IT_MyIT/Smart_IT_MyIT/mongodb/mongod.cfg

root    16254 16220  0 03:03 pts/5    00:00:00 grep mongo


Notice the mongod process above is running. If you don't see it, start it by issuing the following command:


[root@clm-aus-000627 ~]service myitmongod start


For Windows simply highlight the service to start or stop.




b) Check Node.js on Linux by using the grep command:


[root@clm-aus-000627 ~]# ps -ef | grep node




....and if this command isn't returning anything, you can start it by issuing the following command:


[root@clm-aus-000627 ~]service socialserviced start


Same again for Windows, just highlight the service to start/stop.




Some additional things to check are as follows:


  • Check Social service health:


Pre-MongoDB 3.0



{"success":"Hello World"}


MongoDB 3.0







  • Open the UX log located in the SmartIT MyIT log directory and search for anything related to social
  • Open the mongo log (path specified in the mongod.cfg) and look for any exceptions
  • Make sure you have diskspace (linux command is "df -h").
  • Check your JRE version is supported (java  -version)
  • If using a replication set check the config.js file (located in the social directory) is pointing at the right nodes.
  • Check all hostnames are all resolvable by pinging them
  • Try telneting to the hostname/IP address
  • Check node.js and mongo ports are not being used by another process (node is 9001 and mongo is 27017)
  • Tomcat queries Mongo for a key (held in the MongoDB) to authenticate so check to make sure it's being returned by entering the following in your browser:




You should get something like this:


"key": "01a86963-b8e8-e19c-4bb0-ffaf30a9d209“


  • If using Linux, check what the ulimit values are set to by typing "ulimit -a" from the command line.

Reccomended Ulimits.PNG

  • If MongoDB starts crashing on your Linux system check your system log by typing "dmesg" or the following:


[root@clm-aus-000627 ~]# grep mongod /var/log/messages


For MyIT/SRM integration, check the following:


  • Open the SHR:SHR_KeyStore form and ensure the MyIT URL is correct & the token/secret is the same as the one in the file on the MyIT Tomcat Server.


  • Open the "pluginsvr_config.xml" file on the AR Server and check the path references to the plugin file are correct
  • Ensure plugin reference in the ar.cfg is also present.


  • Open the MyIT Administration menu and make sure the SRM provider has the correct Mid-Tier path and remedy application service password

  • Enable Social Event Manager debug as follows:


a) Open the "log4j_pluginsvr.xml" in the pluginsvr directory and change these lines to debug:


<logger additivity="true" name="com.bmc.arsys.pluginsvr">

            <level value="debug"/>


   <logger additivity="true" name="com.bmc.arsys.pluginsvr.plugins">

            <level value="debug"/>


     <logger additivity="true" name="com.bmc.remedy.itsm.SocialCloud">

                     <level value="debug"/>

       <appender-ref ref="SocialCloudPluginLog"/>



b) Restart the AR Server, reproduce the problem and check/send us the SocialEventManager and arjavaplugin logs.


Note: Starting with MyIT 2.6 we replaced the social cloud plugin with the Social Event plugin.


  • For MongoDB replication set troubleshooting use the rs.status() command to check the overall health of your MongoDB replication set.


Note: If you've enabled authentication you need to be logged into the admin DB with a user who has permission to issues these commands:


myitsocial:PRIMARY> use admin

switched to db admin

myitsocial:PRIMARY> db.auth("siteRootAdmin", "admin");


myitsocial:PRIMARY> rs.status()


        "set" : "myitsocial",

        "date" : ISODate("2016-02-26T12:16:37.455Z"),

        "myState" : 1,

        "members" : [


                        "_id" : 0,

                        "name" : "clm-aus-009799:27017",

                        "health" : 1,

                        "state" : 1,

                        "stateStr" : "PRIMARY",

                        "uptime" : 6558893,

                        "optime" : Timestamp(1456485910, 1),

                        "optimeDate" : ISODate("2016-02-26T11:25:10Z"),

                        "electionTime" : Timestamp(1455196320, 1),

                        "electionDate" : ISODate("2016-02-11T13:12:00Z"),

                        "configVersion" : 3,

                        "self" : true



                        "_id" : 1,

                        "name" : "",

                        "health" : 1,

                        "state" : 2,

                        "stateStr" : "SECONDARY",

                        "uptime" : 6558889,

                        "optime" : Timestamp(1456485910, 1),

                        "optimeDate" : ISODate("2016-02-26T11:25:10Z"),

                        "lastHeartbeat" : ISODate("2016-02-26T12:16:35.755Z"),

                        "lastHeartbeatRecv" : ISODate("2016-02-26T12:16:36.715Z"


                        "pingMs" : 1,

                        "syncingTo" : "clm-aus-009799:27017",

                        "configVersion" : 3



                        "_id" : 2,

                        "name" : "",

                        "health" : 1,

                        "state" : 2,

                        "stateStr" : "SECONDARY",

                        "uptime" : 1292611,

                        "optime" : Timestamp(1456485910, 1),

                        "optimeDate" : ISODate("2016-02-26T11:25:10Z"),

                        "lastHeartbeat" : ISODate("2016-02-26T12:16:35.717Z"),

                        "lastHeartbeatRecv" : ISODate("2016-02-26T12:16:35.622Z"


                        "pingMs" : 1,

                        "syncingTo" : "clm-aus-009799:27017",

                        "configVersion" : 3



        "ok" : 1



In the example above you'll see my primary and two secondary MongoDB servers are communicating well whereas if the primary MongoDB crashes or is not reachable you'll see a failed attempt message:


myitsocial:PRIMARY> rs.status()


        "set" : "myitsocial",

        "date" : ISODate("2016-02-26T12:20:08.668Z"),

        "myState" : 1,

        "members" : [


                        "_id" : 0,

                        "name" : "clm-aus-009799:27017",

                        "health" : 1,

                        "state" : 1,

                        "stateStr" : "PRIMARY",

                        "uptime" : 6559104,

                        "optime" : Timestamp(1456485910, 1),

                        "optimeDate" : ISODate("2016-02-26T11:25:10Z"),

                        "electionTime" : Timestamp(1455196320, 1),

                        "electionDate" : ISODate("2016-02-11T13:12:00Z"),

                        "configVersion" : 3,

                        "self" : true



                        "_id" : 1,

                        "name" : "",

                        "health" : 0,

                        "state" : 8,

                        "stateStr" : "(not reachable/healthy)",

                        "uptime" : 0,

                        "optime" : Timestamp(0, 0),

                        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),

                        "lastHeartbeat" : ISODate("2016-02-26T12:20:08.295Z"),

                        "lastHeartbeatRecv" : ISODate("2016-02-26T12:19:52.972Z"


                        "pingMs" : 1,

                      "lastHeartbeatMessage" : "Failed attempt to connect to 1; couldn't connect to server (172.22.239

.230), connection attempt failed",

                      "configVersion" : -1



                        "_id" : 2,

                        "name" : "",

                        "health" : 1,

                        "state" : 2,

                        "stateStr" : "SECONDARY",

                        "uptime" : 1292822,

                        "optime" : Timestamp(1456485910, 1),

                        "optimeDate" : ISODate("2016-02-26T11:25:10Z"),

                        "lastHeartbeat" : ISODate("2016-02-26T12:20:08.002Z"),

                        "lastHeartbeatRecv" : ISODate("2016-02-26T12:20:07.889Z"


                        "pingMs" : 0,

                        "syncingTo" : "clm-aus-009799:27017",

                        "configVersion" : 3



        "ok" : 1



  • If all else fails, enable social DEBUG in the config.js file as shown below then restart the social service, reproduce the problem a few times and send us the social, UX and mongo logs (all logs are located in the Smart IT MyIT log directory with the exception of the mongo log which is defined in the mongod.cfg file)





MongoDB Migration


You can migrate data easily by using mongodump & mongorestore with the following steps:


1) Take MongoDB backup using "mongodump" from existing standalone MongoDB by issuing the following command:


mongodump --host localhost --port 27017





2) Copy over the dump folder/contents to the same directory of your new MongoDB instance and use the "mongorestore" command (this command will check for the dump folder and restore all of it's contents).






MongoDB in combination with Node.js make a powerful Social Engine for MyIT/SmartIT. Please check out some or all of this content and share your feedback.


See more BMC Remedy Support Blogs



Additional Resources


  1. Introduction to MongoDB
  2. Installing and setting up MongoDB for MyIT/SmartIT (Linux)
  3. Installing and setting up MongoDB for MyIT/SmartIT (Windows)
  4. Configuring a MongoDB replica set for MyIT/SmartIT
  5. MongoChef
  6. About Node.js
Share This:

MyIT 3.0 is available for download !


This release is also compatible with BMC Helix Remedyforce and Remedy ITSM 7.6.04 SP2 and later, TrueSight Operations Mgmt 8.6, 9.0, 10.0 & 10.1


Feature Highlights


  • Create new Services in MyIT Service Broker and submit them through MyIT
  • Create new sections in your Catalog and control the order & layout in which the items are displayed
  • More device notification types with approval actions & cross launch into MyIT
  • Change Request Approvals are now visible in the Universal Client & device
  • Reopen Service Requests from your device & Universal Client
  • Quantity, Price and Required Completion date now visible
  • Track what you're following & requested items using the My Stuff tab
  • Disable/enable User Profile editing
  • MongoDB 3.0 performance enhancement with Wired Tiger


MyIT Service Broker integration


Service Broker Office.PNGService Broker Office final.PNG


Never heard about MyIT Service Broker ? Click here

Pragmatic description by Alf Abuhajleh and Simon Geddes




Catalog Order.PNGCatalog UC.PNG


Device notifications


Device Notifications.PNG


Change Approval In-App notification


In-App notification.PNG


Reopen with comments




Quantity, Price & Required Completion date




My Stuff




Disable user profile editing


User Profile.PNGWB.PNG


A summary of all enhancements is available online here.


We heard your feedback that it was hard to find administration information in the use case documentation. You can now find this information in the Administering section, information about integrations is now available in the Integrating section.

Next Steps:

  • Read everything you need to know about MyIT 3.0 here
  • Download MyIT & enjoy !

Share This:


The Zoo: Catalog sprawl is gripping our businesses. For every vendor or service type, there is yet another portal. But like a bad flee market, there's seldom anything we really need. So we turn to unauthorized shadow IT. Simon Geddes, product manager at BMC Software, joins The Zoo to talk about a new approach: IT as a Service - or IT Service Brokering - where all the tools and services the business worker needs are available in a service app store. For IT that means a single solution to manage offerings, permissions, compliance and expenditures. A win-win for the entire enterprise.

Share This:

MyIT 2.6 is GA and available for download.

This release is also compatible with BMC Helix Remedyforce and Remedy ITSM 7.6.04 SP2 and later. TrueSight Operations Mgmt The specified item was not found. 8.6 & 9.0


Feature Highlights


Check our new enhancements in more detail on BMC Docs. If you're unable to upgrade or install at the moment, here's a quick preview:


  • Handle more updates directly on your Timeline
  • View more detail in your Requests and Approvals
  • Keep up to date with interactive & informative notification
  • Comment, add videos & attachments or evaluate Knowledge Articles
  • Launch Virtual Agent (Chat) from MyIT
  • Use Remedyforce Approvals
  • Native leverage of AppZone in Remedyforce MyIT
  • Performance enhancements with our new Social Event Manager plugin
  • Host private ITSM instances sharing MyIT  (Multitenancy)


See below screenshots of some of the changes....



MyIT Comments.PNG









Knowledge Articles

Social Event Manager.PNG


The new IT.PNG


Virtual Agent

Virtual Agent.png


Remedyforce Approvals & Appzone







  1. We have replaced Virgo with Smart IT/MyIT Tomcat for the MyIT Admin Console so you can quickly switch between the Universal Client and Admin Console in one browser session.
  2. Social Events that show up on Timeline and update feed will no longer be sent to social using CAI. The new SocialEventManager.jar plugin will be used as opposed to the socialcloud.jar


Next Steps


  • Read our 2.6 documentation here
  • Download MyIT from our EPD site and enjoy !

MyIT2.6 Installer.PNG

Any insight as to how this release might help your business is welcome !

Share This:


With Amazon and Uber, on-demand self-service now is the norm in our daily life. To stay relevant, enterprise IT organizations try to mimic the consumer-side of self-service, consolidating request portals, updating user interfaces and proactively post knowledge articles about recurring issues. But in the end, we're still stuck with long forms and cumbersome processes. Larry Toube shares his views on how IT can modernize access to its service portfolios by taking an ethnographic approach to innovation – that is, let’s build apps that work like people rather than forcing people to act like apps. As an example, we’ll take a closer look at MyIT, a context-aware self-service app.

Filter Blog

By date:
By tag: