Procedure for Layout Tool demo:

Managing Your Reporting Server:
Administering, Monitoring, and Debugging.
Terry Schwarz
Information Builders
Information Builders Summit 2016 User Conference
June 13 – 17, 2016
Author:
Terry Schwarz
Company:
Information Builders
Presentation Title:
Managing Your Reporting Server:
Administering, Monitoring, and Debugging
Presentation Abstract: This lab is intended for WebFOCUS and
DataMigrator Server Administrators with various levels of experience
and covers Debugging and Server Monitoring topics. We review a
few techniques that can be used to fix configuration problems,
research performance of server procedures and reproduce agents’
crashes. As part of the lab we configure email notifications to alert
server Administrators on error conditions, monitor server activity and
review server logs and traces.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 1 of 47
7/13/2017
What we will cover:







Testing server components and resolution of bad Adapter configuration
Research of performance problem.
Debugging Using Session Log.
Configuration Event routing and testing of Email notifications
Data agents Statistics and Monitoring.
Using Custom Monitor Pages
Server Log and traces. Collection of Server Diagnostics.
Specific Exercises:
Exercise 1 - Verification of Server Services and Listeners
Exercise 2 - Procedure FOC1400 Error:
Resolving Invalid Adapter Configuration
Exercise 3 - Procedure Performance Problems:
Debug using Server Session Log.
Exercise 4 - Configure Event Routing and Email Notifications
Exercise 4 Test - Test Configured Event Routing
Exercise 5 - Agent Debugging, Monitoring, Statistics
Exercise 6 – Server Access Control for Basic User Role
Exercise 7 - Server Log and Traces
Appendix A - Create Custom Monitor Page
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 2 of 47
7/13/2017
Let’s get started.
We will be using 82 WebFOCUS Reporting Server.
It should already be up and running as it was started as a service automatically.
Our first step is to start server Web Console (if it is not already on your screens).
On the Taskbar click icon Chrome browser and use “82 Serverlab Console” quick link
to start Web Console.
Click Chrome
Click quick link on top
Server Lab Login: srvadmin/srvadmin
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 3 of 47
7/13/2017
Exercise 1. Verification of Server Services and Listeners
Every time you install new server or make an upgrade you need to verify server status and test server
components.
In this exercise we will go over server tools helping to verify server components status. In the lab we
will test Procedures, Adapters connections, Metadata, Server Listeners and Services.
The same steps would be helpful when you work on a user problem resolution. You would need to
check on data and metadata files and verify procedures.
.
To check and test Server’s Listeners and Services you need to follows these steps.
1. Login with userid “srvadmin”, password “srvadmin”
2. Click on Workspace on top menu
Click here
3. Right click on Special Services and Listeners and click Processes
Verify all Listeners and Services are active
Right click, select Processes
4. Right click on Java Services and click Agents.
Verify that Status is Active. This is essential for some of the Server features such as Java-based
Adapters, reports containing graphs,…etc.
If you would like to make sure graphs work you can test it from Java Services
5. Expand java services, you will see DEFAULT service. Right click on DEFAULT service and click
Test Graph from the menu.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 4 of 47
7/13/2017
Right click, select Agents
Expand Java, Right click
DEFAULT and choose Test
Graph
If you see any of your services show “failure to start” or “stopped” you should start from checking this
service Statistics (use right click on the Service name to view statistics page) and then check the server
log – edaprint.log for the cause of the problem.
Most common problem for a listener failing to start is the port taken by another process. Java Services
fail if Java SDK is not in the path.
In the next exercise we will test procedure that happens to fail with FOC1400. To
resolve the situation we will follow several steps and will see how to test metadata and
adapter connections.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 5 of 47
7/13/2017
Exercise 2.
Test Procedure - FOC1400 Error.
Resolve Invalid Adapter Configuration.
6. On Web Console Click Applications to navigate to Applications page.
7. Expand application server_lab
8. Right Click on procedure employee_report and choose option Run.
We see that it produce an error FOC1400. This error is accompanied by SQLCODE from DBMS.
We should resolve this problem. In order to do that we need to check all synonyms used by
procedure and Adapter connections for all synonyms.
Right click, select Run
9. Double Click on procedure employee_report to open in editor. Check what synonyms are
used. We see the synonyms used are employee_education and employees_department. We
need to test all synonyms to see which one is causing DBMS error.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 6 of 47
7/13/2017
10. To test synonym we use Sample data option available on synonym menu.
Right click on employee_education master file and click Sample data on the menu. You see
the same error.
Click Sample Data
Same
Error
Displays
Now we need to find out Adapter and Adapter connection for the failing synonym. This
information can be found in Properties of this master file.
11. Right Click on synonym employee_education and choose option Properties
Properties show Adapter type and Connection Name. In our case it is MS SQL Adapter and
Connection name ServerLab
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 7 of 47
7/13/2017
Check the Adapter type and Adapter
Connection name
12. Click Adapters on the top menu
13. Expand MS SQL Server folder in Configured.
14. Right Click on ServerLab and click Test. Test fails with the same Error
Now let’s go to Adapter Connection Serverlab Properties to verify all attributes
15. Right Click on ServerLab and click Properties
Right click and select
Properties.
On Properties page you see all connection attributes, environment variables and the system path
where server is searching for DBMS Client software that is required for Adapter to work. Check all
parameters for Adapter connection. Contact your DBMS Administrator if needed.
16. We see that the database name is “serverlabs”, but the SQL Server Management tool will show
similar name of “serverlab” so likely a typo during setup and no one tested. Please change it to
serverlab.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 8 of 47
7/13/2017
Change to “serverlab”
17.
Click “Test” and see successful connection
18. Click “Configure”
19. Now get back to Applications. Let’s retest synonym employee_education.
20. Right click on employee_education to activate menu and click option “Sample Data”
You now get the report.
21. Test report employee_report. Right Click on the report and click Run
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 9 of 47
7/13/2017
Exercise 3. Procedure Performance Problems:
Debug using Server Session Log.
In the next example we will investigate user’s complain about performance. User runs procedure that
takes long time to finish.
There are many potential areas which can affect performance - Front-end Browser, WebFOCUS Client,
Web Servers, some Network components, Reporting Server and DBMS. When researching
performance problems you should remove some of the components from the picture to concentrate on
those that actually cause the delays. In this example we assume that the problem was isolated and the
problematic component is Reporting Server. Reporting Server by itself is a complex environment –
operating system running the server, DBMS and server itself. Using Server Web Console we will go
thru the steps to find the problematic component.
In this example a user has complained about a report named revenue_report.
Step 1. Test Procedure.
The first steps are – verify the problem by running procedure from Web Console and check the status
of the server agent servicing this request.
Note: Procedures may not reside on the Reporting Server and instead are within WebFOCUS Managed
Reporting. In this case you can create a copy of the procedure on the Reporting Server for debugging
purposes. This can be done with a right-click of the Application directory followed by New Procedure. In
this lab we will assume the procedures are located on the Reporting Server already.
22. Go to the Application page which contains the Procedure
23. Expand application server_lab and Run revenue_report to confirm reported problem
Right click
revenue_report, select
Run
Use Open
and Run to
see text if
you prefer
24. While it’s running on the top menu click Workspace
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 10 of 47
7/13/2017
Step 2. Check Data Service status. Status “DBMS Call”
We now need to check status of the Data Agent servicing execution of this procedure.
The Data Services page shows that agent running procedure server_lab/revenue_report is in “DBMS
call” state. This means that the server agent processing your request sent SQL query to the DBMS and
is waiting for DBMS to process it and send back response (an answer set or an error message). Once
server agent gets the control back from DBMS the “DBMS call” state changes to “in use” and finally to
“idle”. We would check the time that was spent on DBMS processing.
Step 3. Compare “Response Time” and “DBMS Time” statistics.
Now we can refresh Agents page by clicking in refresh icon
and wait for agent get to the idle state
which means that the execution is ended and client disconnected from the server. Now we can
compare agent time statistics.
Find for the agent running procedure “Response Time” and “DBMS Time” and compare. It shows that
around 70% of all time was spent in DBMS. Response time and DBMS time can vary from one machine
to another but the proportion should be similar
The next step would be to look at SQL statement generated by the agent and sent to DBMS.
Step 4. Use Session Log to get generated SQL statement
Server Session Log is a feature of Web Console that allows viewing all focus code sent to the server
agent for execution, generated by agent SQL or MDX statements sent to DBMS and errors, warnings
and messages returned by server agent during execution.
In our case we need to get SQL statement sent to MS SQL Server.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 11 of 47
7/13/2017
25. Open Session Log
Click “Session Log” icon
on the top menu. If you position mouse over this icon it will
display “Show Session Log” on the fly-over.
Click here
26. Session Log Window will open on the bottom of the Web Console page
27. Click “Refresh” icon
in Session log window. You see the log of all your executions in the
log window including the last one
28. Click “Expand” icon on the log window to see the full window. This is the full log of all
commands running in your session including the execution of the last procedure. The log
displays messages, errors and generated SQL Statements. You can scroll down to find your
SQL statement or you can use filter to filter out focus code and see SQL statement
only
29. Click “Filter”, move cursor down to line called “Focus” and click to uncheck. This will
filter out focus syntax leaving only SQL and error information
Click Filter, then “Focus” to uncheck
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 12 of 47
7/13/2017
The SQL statement generated by procedure revenue_report is the join of 2 tables - sales and
customers. Let’s read the messages. These are aggregation and optimization messages that
returned by the SQL Server Adapter. The messages indicate that the request was not
optimized, function POSIT was not passed to SQL. Let’s see if anything we can find out about
this function in Adapters Optimization report that is available from Adapters page.
Step 5. Use SQL Optimization Report.
30 Click “Adapters” on the top menu and then “SQL Optimization Report”.
Click “SQL Optimization
Report
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 13 of 47
7/13/2017
31 On the report we need to get information on POSIT function for SQL Server Adapter. To
display the info choose Adapter Category – 1, Function Category – Legacy (scroll to the
button of the list) and check “Show Function Description.
Click “Show Report”
We get the SQL Optimization report that shows that POSIT function is not optimized for MS
SQL Server Adapter. It also says “Use POSITION function”. Let’s check if POSITION function
would be optimized.
Notice, that some of legacy old functions are not optimized. Function description says which
ones to use to get them optimized. In Server release 81 we created a set of simplified functions
that are matching to those in SQL and so they should be used in your procedures for maximum
optimization.
32 Please close report
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 14 of 47
Click to close
report
7/13/2017
33 Choose Function Category “Character – Simplified” to get report on POSITION function.
Click “Show Report”. We see that Function POSITION is optimized.
We will use now POSITION in the procedure instead of POSIT and see how it changes
performance.
I have already made changes to our revenue_report procedure substituting POSIT() to
POSITION() and saved it as revenue_report_opt that we see in server_lab application.
Step 6. Run procedure after using POSITION() function that is optimized in SQL.
34 Click on Applications on the top menu.
35 Expand server_lab application.
36 Right click on procedure revenue_report_opt and select Run. This procedure is the same
as revenue_report but utilizing POSITION function instead of POSIT.
37 See report was returned in 2-3 secs. Check Time statistics on Data Agents page.
Click “Run”
Use Open and
Run to see
text if you
prefer
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 15 of 47
7/13/2017
38 Click Workspace. View Response Time and DBMS Time.
39 View the SQL Statement generated by changed request on Session Log.
We see that function POSITION has been converted into WHERE clause as SQL function
CHARINDEX(). Function POSITION has been optimized by the Adapter and it improved
performance significantly from 17 secs to 3 secs. All time saving is from Adapter
optimization.
If more improvement required, the next step in this process is to copy SQL statement from
Session Log and execute it in the Native Database tool. It is important to use the exact SQL as
executed by the Reporting Server for an accurate comparison.
When a procedure is optimized on the server and nothing can be done, you can try to work with
your DBA to tune the Database, possibly adding keys and indexes to tables involved into the
requests.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 16 of 47
7/13/2017
Step 7. Size of the Session Log.
Default Log size is 500 lines. If your procedure is complicated the session log might not contain
SQL Statement you are looking for. In this case you can increase the log size.
25 Click Workspace on the top menu
26 Click Settings on the Ribbon and navigate to “Miscellaneous Settings. (You can
close Session Log windows using “close” icon. You will not need it anymore).
Click here, select
Miscellaneous
Settings
27 On the right pane you can see the server parameter that regulates the session log
size – seslog_max_lines. You can change it to bigger number and click “Save”.
Server will be restarted and new number will be in effect. We will not do this during
this lab.
Can be changed to
higher number,
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 17 of 47
7/13/2017
Exercise 4 - Configure Event Routing and Email Notifications
Configuring Reporting server for email notification allows your server to send messages to
designated staff via email automatically for different Reporting Server events and
success/failure/completion conditions of DataMigrator flows. You can also trigger execution of a
procedure that can for example, send you the list of server operators on duty or update your
company monitoring system.
Step 1. Add Email Server information
For email notifications to work we need to add Email server information first
28 Login to Web Console and click on Workspace to activate menu
29 Click E-Mail SMTP Server to get to the Configuration screen
Click here
30 On this page you would need to add SMTP Server information – host, port and credentials (if you
use a secured SMTP server), email sender and optionally server_admin_email.
For our lab we already added all the info.
Step 2. Test Email Server Configuration
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 18 of 47
7/13/2017
It is a good idea to send a test email to check your email configuration is valid.
31 Click Send Test E-mail. Pop –up box appear.
32 Enter a valid email address or use one you just entered in server_admin_email
[email protected] - to receive the email and click Continue .
33 Test is successful. This message proves that the email was successfully sent. You should verify
email delivery.
Step 3. Verify Email Delivery
Verify test email by opening Windows Live Mail to confirm the email was received
34 On the taskbar click Windows Live Mail icon to open email
Click here
35 Verify Test message in Inbox (you may need a send/receive click)
Now that we configured SMTP Server and tested it we can add customized event notification
that will trigger email and procedures.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 19 of 47
7/13/2017
Step 4. Configuring Event Routings
There are a few obvious event candidates you would want to be notified about. Among them
agents and services crashes, reaching limit of pre-defined disk, memory and CPU limits maybe
some procedure errors. We will test 2 of them.
In this lab we will configure email notification and execution of procedures triggered when the
disk space limit is reached for a server agent.
36 After server restarted you are on Application page. Click on Workspace on top menu.
37 Click Event Routing on the ribbon
Click here
We are now on the Event Routing page and we see the list of all pre-defined events that can be
customized. There are 3 types of events. Each type contains a preset list of available events that you
can configure and be notified on.
Information
Warning
Errors
– normal functions such as start/stop, listener enable/disable etc...
– limitations exceeded no agents available, etc...
– agent/ listener crashes, configuration errors, etc...
Next step is customizing one event that will trigger email notification and execution procedure.
Click here
.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 20 of 47
7/13/2017
38 Click on Customize New Event Routing
39 For Type leave Error
40 From the Filter pulldown select 60001 - Listener, special service or agent crashed to be
notified about abnormal interruptions of server processes
41 For the EDAPRINT pulldown leave the default of Yes.
42 For Terminal leave default of Yes.
43 Enter [email protected] email into the Email field.
44 Click Add button to add the event.
Click Add
Second event is custom event that would be based on error FOC205 – Table is not found.
This event will trigger execution of procedure server_lab/alerts every time any user’s
procedure returns FOC205 error. The procedure will run report to get the list of software
engineers and send report via email to server administrator.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 21 of 47
7/13/2017
45 To add click on Customize New Event Routing
Click
46 For Type leave Error
In Filter field type FOC205
Email is empty
Procedure field type server_lab/alerts
Typed by hand
47 Click Add button to add the event
Typed by hand
Click Add
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 22 of 47
7/13/2017
Once the event has been added you will then be returned to the original Customize Event Routing
screen that will list new events added. This is the main page for customizing new events and the page
we go to confirm any event information.
At this point the new event has been added but not saved.
You can add as many events as need, but better to add all at once since a server restart
is required.
48 Once all events confirmed click Save and Restart server.
Now we will test our event.
Exercise 4 Test - Test Configured Event Routing
We configured two events –
 Sending email notification on crash of agent or service and
 Running procedure server_lab/alerts on FOC205 error code.
Crash event will be emulated with internal command crash roughly!
The FOC205 TABLE NOT FOUND error is returned by referring to non-existing master file.
So how do we create event routing on error that is usually returned to a user?
Here are the steps. First we need to understand that event routings are based on messages written into
server log - edaprint.log and FOC messages by default returned to the user running procedure. We
need to change errors output destination to edaprint.log. This can be done via Server Core settings
EMGSRV that we can set from Web Console.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 23 of 47
7/13/2017
Step 1. Setting EMGSRV to route FOC message to EDAPRINT.
49 Click Workspace.
50 Click FOCUS Sets and Info and then Core Engine Settings.
51 In SET Name type EMG%
52 Click Next
53 Click drop-down for EMGSRV and choose EDAPRINT/ON – Route to EDAPRINT and
normal output
54 Click Save to save the changes. The setting will be stored in edasprof.prf
Step 2. Testing event routing
55 Click “Live Console” on the Ribbon to see all server activity. This feature is
available on Chrome and Firefox browsers. The separate browser window opens.
56 Access Web Console Applications menu.
57 Expand server_lab folder
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 24 of 47
7/13/2017
58 Right click error205 procedure, choose Run
This procedure runs request to non-existing table and then crashes. The result is a message stating
that the agent has been terminated
Live console shows FOC205 routed to edaprint.log followed by crash (takes a moment to
display). Edaprint.log referrs to edaplog process execute event routings - email and procedure.
05/12/2015 17:23:55.590 I edaplog: executed procedure server_lab/alerts
(... several lines not shown ...)
05/12/2015 17:23:56.610 I edaplog: email sent to [email protected]
Step 3. Verify email delivery and execution of procedure triggered by the event
59 Check the Inbox. It shows 2 email messages for this event has been received.
Email Notification - Error: (EDA60001) Agent (tscomid=5) crashed
Report from procedure server_lab/alerts - EMERGENCY CONTACT LIST.
We have verified both event routings. Email sent on agent crash contains agent statistics with
information about executed procedure that killed the agent - procedure name, command executed,
userid, master file and etc…. Server ran procedure server_lab/alerts on FOC205 that sends email to
server administrator with the list of engineers that should be notified.
The edaprint.log contains details for all agents’ activity as well server messages triggered events’ email
and procedure execution.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 25 of 47
7/13/2017
Exercise 5 - Agent Debugging, Monitoring, Statistics
Best place to start server agents monitoring is Data Agents page. This page provides you with the
status of all agents for all Data Services. You can get to agents statistics, check the last execute focus
command, start/stop data agents
Step 1. Review Agent information
60 Click on Workspace to access agents monitoring
61 Review field information for crashed agent highlighted in red. This is result of procedure
error205 execution we ran in the previous step.
Scroll to the right to see additional information about the agent such as Procedure name, Master file
name and several time statistics such as Response Time, Server Time, DBMS Time and others. If
you have a user complaining about a procedure crash you now have a good idea what procedure
caused the crash and therefore you can reproduce it and research further.
You can now check agent statistics and use option “Save the last FOCUS Command” to save the code
that crashed the agent. For many WebFOCUS administrators this is a large part of the task of
troubleshooting and debugging.
Step 2. Review Agent statistics, Use Last Focus Command
Let’s review all option available for data agent.
62 Highlight the crashed agent, right click and see all options available – Statistics,
Last Focus Command, Kill Agent options
63 Click on “Statistics”. View all data available- user, procedure name, master file,
command, time statistics and others.
64 Click on “Save Last Focus Command”
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 26 of 47
7/13/2017
You get the FOCUS code that was run opened in Edit Procedure screen. This code can then be used
as a baseline for code review and performing isolation and debugging tasks when problems arise.
Along with the code are some default trace settings that can be adjusted if necessary to capture what is
needed for further review by IBI support. All of this should enable the problem resolution to run faster
than before.
If you need to monitor several activities at the same time you can create Custom Monitor Page.
See Appendix A at the end of the lab
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 27 of 47
7/13/2017
Exercise 6 – Server Access Control for Basic User Role
Access Control page is used to change security providers on your server and change user’s
access privileges.
65 Click on Access Control
Tree on the Left – Access Control Tree - shows Security Providers, Roles and Templates
 Security Providers is to define new providers and activate them
 Roles is to configure access privileges to Role, Groups, Users
 Templates is to configure an automatic access privileges for groups in multi-tenants
environment with similar privileges to tenants’ applications
Reporting server is installed with default security provider PTH and only one userid (by default
srvadmin) has access to the server. When the server admin connects to server configures a
new security provider, the server displays the following message with recommendations about
securing the server behavior of unregistered users (Basic User Role by default).
We are not going to add or alter providers, but follow the recommendations for the existing
provider (PTH).
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 28 of 47
7/13/2017
First step is to remove privileges to run Direct Pass-thru SQL requests and Operating system
commands from procedures
Step 1. Change General Privileges
66 Right Click on Basic User Role, choose General Privileges
67 On General Privileges table click check boxes for
NODPT to Disable Direct Passthru SQL requests such as SQL DB2 Select * from
SYSIBM.SYSTABLES
NOSYS to Disable Operating System Commands such as ls /bin or dir C:\Windows
You’ll see (Not Saved) on the top of the page. It means that you need to save changed to
make them in effect.
68 Click “Save” at the bottom of the page. You’ll see “Customized” was added to Basic User
Role on the tree to show the privileges were changed from their default values.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 29 of 47
7/13/2017
Next step is to change File Access Privileges. Based on recommendations we should change
privileges to all files outside of APPROOT to NONE and to APPROOT to Read, Write, Execute.
This would be our next step
Step 2. Change Directory/File Privileges
69 Right Click on Basic User and choose Directory/File Privileges
We see Privileges table that shows default privileges to all files and directories
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 30 of 47
7/13/2017
70 Click check boxes for Read, Write, Execute and List on the top line for (*) to
remove all privileges from all files. It will be a step to remove privileges from files
outside of APPROOT
After this change privileges to files under APPROOT was change to NONE as well as
APPROOT inherits privileges from (*). Now we need to adjust privileges to APPROOT.
71 Click on Read, Execute, List check boxes for “apps” line that has remark
“APPROOT”
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 31 of 47
7/13/2017
We’ll do one more change – remove all privileges from ibisamp , application under
APPROOT.
72 Right click on “apps” and select “Show All Directories/Files”
We now see all applications with all their privileges. At this point all applications under
APPROOT inherit privileges from APPROOT and so they are Read, Execute, List.
73 Click on “apps” and select “Show All Directories/Files” again to refresh information
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 32 of 47
7/13/2017
74 Click on Read, Execute, List for “ibisamp” to remove all privileges.
Now all changes are done. Click Save to save all changes.
After page is refreshed we see all our changes marked “Customized”. You can reset
them to default is you right lick on those locations and choose “Reset to Default”
Step 3. Test Access Control Changes for Basic User
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 33 of 47
7/13/2017
Connect to server as unregistered user and test privileges
75 Sign out from server admin id PTH\srvadmin
76 Log In with user pthuser, password pthuser. This is unregistered user and so will
inherit privileges from Basic User Role.
Let’s see how the privileges we set work.
First we see that ibisamp is not shown on the Application tree. This is because privileges set to
NONE.
Second we will test that user can’t execute Direct SQL requests
77 Expand application server_lab
78 Right click on test_nodpt procedure and select Run. This procedure executes SQL
SQLMSS SELECT request
Result is error (FOC1570) DIRECT PASSTHRU DISABLED
More tests can be done to verify the configured environment. For example using FILEDEF for
file outside if APPROOT that will also fail with violation.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 34 of 47
7/13/2017
Exercise 7 - Server Log and Traces
When you research and debug problem on the server your best source of information is the server log.
It’s located in server configuration directory and called edaprint.log. Server records all server activities
such as client connect, client disconnect, connections queuing, resuming from the queue, deactivating
agents and many others in the log. It also stores all errors and warnings produced during all these
activities. The server log can grow rather big and you may want to filter it to see specific events or view
part of the log based on time interval. This is all available via edaprint.log filtering.
Step 1. EDAPRINT Filtering
79
80
81
82
Click on Workspace
Expand Logs and Traces folder
Right Click on Workspace Log and Click View
Double click edaprint.log. You can view the log. It shows the contents of
edaprint.log, we use different colors to show Error and Warning messages (scroll to
see our prior crash).
83 Right Click on Workspace Log and Click Filter
84 In the EDAPRINT Log Filter page use Select Filtering drop-down box to see 3
options :
a) No Filtering ( default)
b) Filter By Category
c) Filter By Timestamp
85 Choose “Filter By Category”
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 35 of 47
7/13/2017
Select this
86 Once filter opens click “Any Error” and “Any Warning”
87 Click “Set Filter”
Click here to set filter
Now View the Filtered edaprint.log
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 36 of 47
7/13/2017
88 Right Click on Workspace Logs to activate menu
89 Click on View
90 Double click edaprint.log
You see only error and warning messages displayed in different colors that actually easy to see
even without filtering. To remove filtering, repeat step 100 and clear filter.
Step 2. Enable traces
You can enable server traces when execution of a command or a procedure causing problem –
wrong output, crash, performance problem.
First, one would need to obtain stable reproduction steps and run first without traces to see you
have repeatable invalid behavior. You can use Session log or Last Focus Command to get the
problematic procedure. After you get the repro you are ready to run it with traces.
Traces can be enabled from Web Console and from command line on the machine where
server is running. Traces are located in edatemp folder of EDACONF directory.
Traces can be viewed from Web Console on Workspace page and Application tree in addition to
physical directory on the machine where the server in running.
91 Click on Applications on the top menu, expand application server_lab.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 37 of 47
7/13/2017
92 Click on top “C” icon and choose “Enable Traces”
When you need to run a specific repro, try to enable trace just before execution, so your trace
files are as small as possible.
Click here, select
“Enable traces”
93
94
Right click on employee_education master file and click on Sample data
Disable trace by Click on top “C” icon and choose “Disable Traces”
Step3. View traces in Workspace.
95
96
97
Click on Workspace on the top menu
Expand Logs and Traces folder
Right Click on Traces and Click View
You see the list of trace files – listeners, agents, services.
In our case we are looking for data agent trace which name start with ts*. In latest releases of
the server in addition to trace file we also create agent input, agent output files, agent script
file.
ts0nnnn.trc trace file
ts0nnnn.fex input file
ts0nnnn.tro… output file
ts0nnnn.t3i … agent tscom3 script
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 38 of 47
7/13/2017
Step4. View traces and configuration files on Application tree
As of 7706/81 we added an option for internal server locations (edatemp, edaprfu, edaconf, etc.)
on Web Console Application tree, but only available for server administrators.
98 Navigate to Application Tree. Click on Applications on the top menu
99 Click Application Preferences on the ribbon
Click Application Preferences
100 On Application Preferences page check “Show edahome, edaconf, edaprfu,
edatemp….”
101 Click Update
Click Update
Now on Application tree is refreshed and we see these additional folders
_approot – root location for all server applications
_edaconf – server configuration directory
_edahome – server installation directory
_edaprfu – server profiles directory
_scaroot – server stress tests directory
edatemp_base – server edatemp directory with ts00* subfolders (edatemp for all data
agents)
foccache_base – foccache directory with foccache folders for all users
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 39 of 47
7/13/2017
102 Expand edatemp_base folder. This is server EDACONF/edatemp directory where you
see edatemp for all active data agents – ts0000nn sub-folders.
We also can see all trace files that were created during our last Sample data with
Trace On.
103 Locate ts000005.fex. This is input focexec from that Sample Data execution. Let’s run
it.
Right click on ts000005 ( maybe different last digit, depending on agent tscomid that
was servicing this request) and click Run
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 40 of 47
7/13/2017
104 Check the result of that execution.
We see that Server Admin can use Web Console Application tree to review all files on the
server and execute trace input files as procedure. This is a new way to reproduce users’
problems. Find reproduction steps, enable trace, run reproduction, disable trace and use Web
Console to run as procedure and debug.
105 Before we move to the next step, please click to Application Preferences page.
Uncheck “Show edahome, edaconf, edaprfu, edatemp….”
Click Update
Step5. Collecting Diagnostics.
Every time you contact Information Builders Customer support with the server problem we require
sending us diagnostics file that we call “savediag”. A savediag is an archive collection of server
configuration files, server logs, traces if available, and optional server applications with reproduction
files.
Let’s see how the savediag is created.
We just ran Sample data with traces and now we need to ship all diagnostics files created by this
execution to IBI Customer Support. In addition to created trace files and logs we also need your
configuration files, data files and metadata. You don’t have to find and collect all these files; we will do it
for you when you run create “savediag”. It can be created from Web Console and from command line
on the machine where server is running. Let’s see how it can be done from Web Console.
106 Click on top “C” icon and choose “Savediag – report a bug”
The Savediag page is shown on the right pane. Savediag utility allows you to select one of the three
options currently available plus the ability to remove outdated, unneeded savediags
.
Savediag and post will generate and automatically post your savediag to the IBI ftp location and will
also update the appropriate support case.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 41 of 47
7/13/2017
Save Diagnostics allows you to manually collect diagnostic but will not post
Post existing will post a previously collected diagnostic
Delete to remove outdated unwanted diagnostic files.
Select
Save Diagnostics
Enter
server_lab
107
108
109
110
Select “Save Diagnostics (savediag) on Diagnostics Options pull-down
Keep default for “Savediag Directory”
Enter server_lab” into List of Applications
Click Submit
The resulting savediag is automatically archived (zip on Windows, tar on most others). This
feature exists on all platforms. If you have open support case, you can do “and Post” option
which will ftp the archive. Savediag can also be done on the operating system command line
with “edastart –savediag” with the server in an up or down state. Ideally, a savediag for a
problem reproduction is a solely a server start with traces, run reproduction and then savediag.
Questions?
Thank you for your attendance.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 42 of 47
7/13/2017
Appendix A. Create Custom Monitor Page
On many occasions you need to monitor several activities and so you have to switch from one
monitoring page to another which can become inconvenient and time consuming. For instance, if you
monitor submitted or scheduled jobs you may want to see Data Agents and Scheduled Agents page at
the same time.
Custom Pages can help you to do that. You can choose from Data Services, Java Services, Special
Services and Listeners, Cluster and Resource Management Monitor Pages. You can create and save
this special object in your application directory and then use it every time you need monitoring. Refresh
on this custom monitor page will refresh all pages. In the releases higher then 8002m you can also add
execution of procedures into custom page.
Let’s look at the example.
2
3
1 Go to Applications page
Click New
Choose Custom Page and click
4
5
6
7
In the newly opened window click “Add Workspace” on the top
Expand Data Services
Expand WC-DEFAULT
Click Agents – first page is selected
Click here
Click here to
select “Agents”
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 43 of 47
7/13/2017
Let’s add more pages
8
9
10
11
Expand Special Services and Listeners
Expand Scheduler
Hold Ctrl and click Scheduler Agents
Click OK on the active window to close it.
We added two workspace pages to custom page. Now we will add procedure
Hold “Ctrl” and click
12 Click Add Procedure on the top
13 Click server_lab. Navigate to stats_demo.fex in the server_lab application. Click to select.
14 Click OK.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 44 of 47
7/13/2017
15 On the top of the right pane you can use Arrange Windows to make those windows arranged
vertically, horizontally or cascade. We can keep it vertical as done by default.
16 Save new Custom page. click Save as icon on the top
Click to save
17 Click server_lab.
18 Type monitor in the File Name field
19 click OK
On application tree you see server_lab application expanded with new custom page – monitor
Step 6. Test Custom Monitor Page
In the next step we will submit stats_demo procedure and see how the custom monitor page
helps us to see multiple statistical data.
20 on Application tree locate procedure stats_demo in application server_lab
21 right click to activate menu and choose Run Advanced , then Submit with Email
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 45 of 47
7/13/2017
22 Keep default options “Submit on remote agent” and “Do not wait for completion”
23 Click “Submit” at the bottom.
Click “Submit”
This will submit procedure on remote agent. This is submission via server Scheduler and it
allows submitting at the certain time and send email on start, failure and/or completion.
You will see message that confirms submission by Scheduler:
(ICM18533) Request Submitted: server_lab/stats_demo
(ICM18762) Job ID: 20150514102526_987fe0e4
Next we use our new custom monitor page monitor
24 Right click on monitor in server_lab application
25 click Open
We see all monitoring pages are updated and you can see report from execution of procedure
stats_demo. All links that are usually available on each individual statistics or monitoring page are
available in monitoring page as well.
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 46 of 47
7/13/2017
26 On the Scheduler Agents page right click on the procedure name stats_demo
27 Click View Log and view the log from execution of the procedure.
Other actions you can try here is view agents statistics on Data Services page, View Log, View
Statistics on Scheduler Agents page,
Managing Your Reporting Server: Administering, Monitoring, and Debugging
Copyright © 2016 Information Builders
Page 47 of 47
7/13/2017