Activity Notifications are not sent from Service Desk

Document ID : KB000044726
Last Modified Date : 01/02/2019
Show Technical Document Details
Question:

Activity Notifications are not sent from Service Desk and do not update the Activity History.

Manual Notifications are correctly sent and update the Activity History.


The following error appears in STDLogs when triggering a notifications: 


spelsrvr             4148 ERROR        pcexec.c              6403 Spell interp failed at doc_rep.spl:720:doc_rep.servlet_path::set_servlet: Non-string arg to get_servlet_path (string)

domsrvr              7328 ERROR        attr.c                6369 Error in ATTR_INIT trigger doc_rep.servlet_path::set_servlet for servlet_path: doc_rep.spl:720:doc_rep.servlet_path::set_servlet
spelsrvr             4148 ERROR        doc_rep.spl            560 Error on get_attr_vals to retrieve servlet_path and server for doc_rep id (doc_rep:1000). 2
kt_daemon            6968 ERROR        DomWrap.c              928 Failed to complete reply method: 'got_rep_services' ,BOP Name:'ntfm:1069' in class:'CDrefHTMLLinks', Error:
kt_daemon            6968 ERROR        DomWrap.c              928 Failed to complete reply method: 'dref_html_links_done' ,BOP Name:'ntfm:1069' in class:'CHTMLAttrInit', Error:
domsrvr              7328 ERROR        attr.c                6369 Error in ATTR_INIT trigger html_attr_init for notify_msg_body_html_real:
spelsrvr             4148 ERROR        pcexec.c              6403 Spell interp failed at alg.spl:332:alg::post_ci_notify: get_attr on notify_msg_body_html_real failed:  WOBO

 

Note: If Manual Notifications are not sending either, then a different issue may be in effect.
Check the stdlogs to confirm that the above errors are seen.

Environment:
Service Desk Manager 14.1, 17.0, 17.1.
Answer:
The "Servlet Server" for the repositories is not correct and is pointing to an old server.

Phase 1 - The Standard Solution. USE FIRST.

1. Log into Service Desk Manager > Administration > Attachment Library > Repositories
2. Right-Click on Repository > View > Check the value for "Servlet Server".
3. If the value for "Servlet Server" is not correct, click on Edit and set the right server.
Tip: It is best to take a screenshot before making changes as a precaution.

4. Go through each Repository and check the value for "Servlet Server" is correct for each one
5. Confirm the notifications are sent via Activity Notifications.

Phase 2 - Additional Information if the Standard Solution does not Work

Only continue to Phase 2, if Phase 1 has been tested thoroughly, as a "through the interface" method of correction is preferred if possible.
CAUTION: Damage to the database will occur if incorrect data correction is performed.

This has been written for a specific example of an SDM 12.6 to ITSM 17.1 upgrade where it was found that the usp_servers table had an id of "400001" instead of "1001".
Care should be taken to examine your system, as there may be multiple Repositories or different data in the error messages that require a different correction.

IMPORTANT NOTE: The client's issue stopped occurring on their system without the following change being implemented. This solution has been generated on at test box in a CA Support lab and confirmed as successful there (Hence the different doc_rep id to the error messages). However, at the time of writing this has not been applied to a live client system. Due diligence is advised.

The errors encountered in the client log were:
- - - -
domsrvr              7008 ERROR        attr.c                6369 Error in ATTR_INIT trigger doc_rep.servlet_path::set_servlet for servlet_path: doc_rep.spl:1007:doc_rep.servlet_path::set_servlet
spelsrvr             4236 ERROR        doc_rep.spl            847 Error on get_attr_vals to retrieve servlet_path and server for doc_rep id (doc_rep:1000). 2
kt_daemon            7476 ERROR        DomWrap.c              959 Failed to complete reply method: 'got_rep_services' ,BOP Name:'ntfm:400179' in class:'CDrefHTMLLinks', Error:
spelsrvr             4236 SIGNIFICANT  zMY_SPL.spl          152 zMY_CHG: chg::z_chg_needbystr: Setting zneedbystring for chg 22730 successfully.
kt_daemon            7476 ERROR        DomWrap.c              959 Failed to complete reply method: 'dref_html_links_done' ,BOP Name:'ntfm:400179' in class:'CHTMLAttrInit', Error:
domsrvr              7008 ERROR        attr.c                6369 Error in ATTR_INIT trigger html_attr_init for notify_msg_body_html_real: 
spelsrvr             4236 ERROR        pcexec.c              6456 Spell interp failed at chgalg.spl:474:chgalg::post_ci_notify: get_attr on notify_msg_body_html_real failed:  WOBO
- - - -


You may make changes either with "pdm_load" of corrected text files.
Or directly in the database, with SQL update commands.
The SDM virtual database can updated with by a recycle of the CA SDM Service, or with the "pdm_cache_refresh" command. 


1) Take backups of the following two tables from an Administrator command prompt on the SDM server:
pdm_extract Document_Repository > doc_rep_backup.txt 
pdm_extract usp_servers > usp_servers.txt 
These can be used to restore to a current state if needed via the "pdm_load" command.

2) UPDATE the "Default Service Desk Repository" table row 1002 in the Document_Repository table values of "400001" to be "1001". There are TWO values to change. 
 
TABLE Document_Repository 
aa_services archive_path archive_type cgi_path default_rep del description 
file_limit_size id last_mod_by last_mod_dt persid prohibited_ext protocol 
rep_credentials rep_server repository_type retrieve_path server servlet_path 
servlet_server sym tenant upload_path 

{ "3" ,"C:/PROGRA~2/CA/SERVIC~1/site/attachments/default/archived_files", 
"0" ,"" ,"1" ,"0" ,"Default Service Desk Repository" ,"0" ,"1002", 
"F4C2A60100EA154695D233F90ABFFD21" ,"01/29/2019 13:05:43" ,"doc_rep:1002", 
"" ,"http" ,"" ,"400001" ,"0" ,"" ,"<YOUR HOSTNAME HERE>", 
"http://<YOUR SERVER HERE>:8080/CAisd/UploadServlet" ,"400001" ,"Service Desk" ,"" ,"C:/PROGRA~2/CA/SERVIC~1/site/attachments/default/servicedesk/files" } 



3) UPDATE the "usp_servers" table row for "400001" to be "1001". There is only one value in one row to change. 
 
TABLE usp_servers 
database_type del desc external_dns_name id last_mod_by last_mod_dt linked 
local_host platform server_id server_type slump_port timezone upload_path 

{ "SQL" ,"0" ,"" ,"" ,"400001" ,"<YOUR ID HERE>", 
"01/28/2019 15:27:49" ,"1" ,"<YOUR LOCAL HOST HERE>" ,"1" ,"2531" ,"0" ,"2100" ,"" ,"http://<YOUR SERVER HERE>:8080/CAisd/UploadServlet" } 


4) Run the two pdm_cache_refresh commands OR recycle the CA SDM Service.
No server recycle is needed.
 
pdm_cache_refresh -t Document_Repository 

pdm_cache_refresh -t usp_servers