Product:
Planning Analytics Workspace Version 88
PAA Agent version 2.0.88.1607  ( version found in file D:\Program Files\ibm\cognos\tm1_64\paa_agent\wlp\usr\servers\kate-agent\version.txt)

Issue:

Planning Analytics Workspace Administration page can not display information about the TM1 instances.

You need to check the PA Administration Agent log files to get more information.

The message.log files are found in folder D:\Program Files\ibm\cognos\tm1_64\paa_agent\wlp\usr\servers\kate-agent\logs on the TM1 server.

You have some TM1 instance that there name is shown in garbage character – you are probably using a character only used in your language, and not in English.

Even that you stop your TM1 instance with the none-english name, the PAW administration page does not give you access to the other TM1 instances.

Error message in log file:

[10/6/23 9:30:58:542 CEST] 00000069 SystemErr R ERROR:status.py:Exception while getting windows registry details:
Traceback (most recent call last):
File “kateagent/scripts\status.py”, line 904, in get_win_registry_detail_batch
p = subprocess.Popen([“powershell.exe”, service_cmd],
File “D:\Program Files\ibm\cognos\tm1_64\paa_agent\wlp\usr\servers\kate-agent\apps\expanded\PA_KATE_AGENT.war\WEB-INF\lib\jython-standalone-2.7.2.jar\Lib\subprocess.py”, line 892, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File “D:\Program Files\ibm\cognos\tm1_64\paa_agent\wlp\usr\servers\kate-agent\apps\expanded\PA_KATE_AGENT.war\WEB-INF\lib\jython-standalone-2.7.2.jar\Lib\subprocess.py”, line 1361, in _execute_child
args = [fileSystemDecode(arg) for arg in args]
UnicodeDecodeError: ‘utf-8’ codec can’t decode bytes in position 437-438: invalid data
[10/6/23 9:30:58:542 CEST] 00000069 com.ibm.pa.kate.agent.scheduler.ScheduledTask E Error occurred while updating the server info json file
Traceback (most recent call last):
File “kateagent/scripts\status.py”, line 1025, in <module>
configPaths = get_win_registry_detail_batch(allServers)
File “kateagent/scripts\status.py”, line 922, in get_win_registry_detail_batch
return mapped
UnboundLocalError: local variable ‘mapped’ referenced before assignment

 

Suggested Solution:

The PAA agent will run a python script status.py to check for what Tm1 instance exist and other information, on line 922 it will read the windows registry to find the started TM1 instances – in key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services – check at that location in REGEDIT.EXE program. If there is any non-english character, like in service name or “DisplayName”=”IBM Cognos TM1 Server … then this can be the issue.

The error say it found a character that it can not understand with UTF-8, and therefor have problem scanning for more information.

Inside Cognos Configuration for Planning Analytics, remove the application with the strange name, and register it again with a name that only use English characters.

It can be that you have created the TM1 instance from the command prompt and not from the Cognos Configuration program, then it can be registered with wrong codepage.

Like;

tm1sd.exe -install -n”TM1 Production Server” -z”C:\Program Files\Cognos\TM1\Custom\TM1Data\PData”

Check that the values in registry is readable, and then restart the kate-agent (IBM Planning Analytics Administration Agent)

More information:

https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/ 

https://www.ibm.com/docs/en/planning-analytics/2.0.0?topic=rtso-setting-up-tm1-server-run-as-windows-service 

https://www.ibm.com/support/pages/setting-tm1-server-run-service 

The python code to find the information;

def get_win_registry_detail_batch(service_names):
paths = []
for n in service_names:
paths.append("'HKLM:\SYSTEM\CurrentControlSet\Services\{}'".format(n))
service_cmd = "Get-ItemPropertyValue -Path {} -Name ConfigPath".format(", ".join(paths))
try:
p = subprocess.Popen(["powershell.exe", service_cmd],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
out, err = p.communicate()
vettedResults = [line.strip()
for line in out.replace('\r', '').split('\n')
if line != '' and re.match(r'^.:\\', line)]
mapped = zip(service_names, vettedResults)
if p is not None and p.poll() == None:
p.kill()
if err and out is None:
logger.error('Error while getting windows registry details: {}'.format(err))
except Exception as e:
logger.exception('Exception while getting windows registry details: {}'.format(e.message))
return mapped

 

 

Product:

Planning Analytics Workspace

Problem:

List of versions that match other parts like the server and the workspace.

Solution:

Check the web for a list of matches.

https://www.ibm.com/support/pages/node/6519826

 

 

*IBM recommends that those who use Custom Reports and Dynamic Reports upgrade to Planning Analytics for Excel 2.0.89 immediately. For more details, see this Flash Alert.

*IBM recommends that customers upgrade to Planning Analytics Local 2.0.9.18. For more details, see this Flash Alert.

The version of PAW to use with PAX is the same version number or one above or one below. For example, if you have PAX version 2.0.50 installed, then use PAW version 2.0.49, 2.0.50 or 2.0.51.

New version for Planning Analytics Workspace, Planning Analytics for Excel comes out every 15-40 days, for Planning analytics new version comes out every 3-6 months.

 

More Information:

https://exploringtm1.com/planning-analytics-version-management/ 

https://www.tm1forum.com/viewtopic.php?t=16128 

https://blog.octanesolutions.com.au/pa-paw-pax-version-conformance

Product:
Planning Analytics workspace version 88
Microsoft Windows 2019 server

Issue:

OS report that all memory is used on the Windows server.

Solution:

First check the task manager to find what application is eating the memory.

It can be the anti-virus program is using all memory. If registry or msmpeng.exe is using all page pools then that can be that (anti-virus) program who is using all memory.

Exclude the TM1 PAW folders from the anti-virus scanning and restart the windows server.

D:\Docker

D:\PAW88

C:\ProgramData\docker

C:\Program Files\docker

 

The docker program is listed as dockerd.exe in task manager.

More information:

https://www.minitool.com/news/microsoft-defender-antivirus-service-high-memory.html 

https://www.ibm.com/docs/en/SSD29G_2.0.0/com.ibm.swg.ba.cognos.tm1_prism_gs.2.0.0.doc/tm1_prism_gs.pdf 

https://exploringtm1.com/planning-analytics-workspace-scripts/ 

Product:
Planning Analytics 2.0.9.18
Microsoft Windows 2019 Server

Issue:

When running TI process that have worked before we get error random like this;

Error in process completion: Unable to save subset “computed subsetname here” in dimension “Version”

Possible Solution:

That the a new anti-virus software is installed, that blocks the TM1 TI process from delete old subset files in data folder.

If you have MS Defender, ask to exclude the data folder and subfolders from the scanning. E.g. d:\tm1\budget\data

The anti-virus software is running from folder C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.23080.2006-0

More Information:

https://answers.microsoft.com/en-us/windows/forum/all/windows-defender-real-time-protection-service/fda3f73e-cc0a-4946-9b9d-3c05057ef90c

https://www.softeng.es/en/blog/microsoft-defender-for-endpoint-the-solution-to-protect-detect-and-respond-to-the-most-advanced-attacks/ 

https://code.cubewise.com/bedrock 

Product:

Planning Analytics 2.0.9.18

Microsoft Windows 2019 server

Issue:

TM1 TI process that have worked before, crash now with error:

Error: Data procedure line (0): Exception Occurred during process execution: TM1MemoryException: Temporary pool exceeded

Possible Solution:

Change in the Tm1s.cfg file for your application to have a bigger value for MaximumViewSize, like MaximumViewSize=1000.

Restart the TM1 service, and run your process again.

MaximumViewSize is a per thread limitation.

More information:

https://www.ibm.com/support/pages/warning-noted-tm1-server-log-memorytemppoolexceeded 

https://www.ibm.com/docs/en/planning-analytics/2.0.0?topic=pitf-applymaximumviewsizetoentiretransaction#concept_ur1_bbp_rq 

By default MaximumViewSize checks individual view processing. For example, if 10 views are processed in a single transaction, the threshold is crossed only if the processing of any single view crosses the threshold. See MaximumViewSize.

With ApplyMaximumViewSizeToEntireTransaction=T parameter set to True, the cumulative memory usage of all views processed in a single transaction is compared against the threshold value. This allows the memory size threshold to catch more transactions that consume large amounts of memory.

Product:
Planning Analytics Local 2.0.9.18
TM1_version=TM1-AW64-ML-RTM-11.0.918.3-0
Microsoft Windows 2019 server

Problem:

After upgrade of Planning Analytics Local installation (PAL), the TM1 App Web is not showing the applications.

Suggested Solution:

Stop the service IBM Cognos TM1

Go to folder D:\Program Files\ibm\cognos\tm1_64\webapps\pmpsvc\WEB-INF\configuration

Rename fpmsvc_config.xml to fpmsvc_config.xml.old.txt

Rename fpmsvc_config.xml.new to fpmsvc_config.xml

Copy the lines between, the tm1 markers, that contain the name of the applications:

<tm1>
 </tm1>

from the file fpmsvc_config.xml.old.txt to the file fpmsvc_config.xml

Now the applications and gateway uri should be listed in the new file.

Start the service IBM Cognos TM1

More information:

https://www.ibm.com/support/pages/tm1-application-does-not-appear-tm1-applications-list-after-deployment

Product:

Planning Analytics Workspace 88  (file version.ps1 in folder paw\config contains a version number)
$env:PAW_BUILD=”121″
$env:PAW_RELEASE=”2.0.88″
Microsoft Windows 2019 server

Issue:

What containers should be running in a working PAW installation?

Solution:

Start powershell as administrator and enter command:

docker ps

This will list all running containers – should be these:

CONTAINER ID IMAGE                                                               PORTS                        NAMES
b6874749d0a5 127.0.0.1:5000/planninganalytics/prism-platform:3.0.2365.2-ltsc2019 9080/tcp                     prism-platform
5f104714f851 127.0.0.1:5000/planninganalytics/bss:1.0.1397-ltsc2019              8082/tcp                     bss
a946de8db063 127.0.0.1:5000/planninganalytics/pa-gateway:1.0.1098-ltsc2019       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp pa-gateway
83e22e0be1f8 127.0.0.1:5000/planninganalytics/neo-provision:1.0.392-ltsc2019     8083/tcp                     neo-provision
6d11be2a5fd7 127.0.0.1:5000/planninganalytics/neo-idviz:9.0.982-ltsc2019         9060/tcp                     neo-idviz
e8c3bd52ca54 127.0.0.1:5000/planninganalytics/monitor:2.0.88.3035-ltsc2019       9082/tcp                     monitor
bfa3ef090459 127.0.0.1:5000/planninganalytics/wa-proxy:1.0.1020-ltsc2019         1338/tcp                     wa-proxy
fb7bd169d5b3 127.0.0.1:5000/planninganalytics/async-service:1.0.387-ltsc2019     9666/tcp                     async-service
fef9418814e5 127.0.0.1:5000/planninganalytics/share-platform:1.0.425-ltsc2019    9110/tcp                     share-platform
afaeb58c897c 127.0.0.1:5000/planninganalytics/pa-plan-service:1.0.2023051901-ltsc2019 9080/tcp                plan-service
b84bc681967b 127.0.0.1:5000/planninganalytics/paw-ui-api:1.0.260-ltsc2019        3000/tcp                     paw-ui-api
31ac3574ea06 127.0.0.1:5000/planninganalytics/user-admin:1.0.737-ltsc2019        3333/tcp                     user-admin
5e55f009d40f 127.0.0.1:5000/planninganalytics/pa-glass:3.0.9788-ltsc2019         9080/tcp                     glass
8dc5e074265d 127.0.0.1:5000/planninganalytics/atlas-service:125-ltsc2019         9076/tcp                     atlas
5d482449ac97 127.0.0.1:5000/planninganalytics/prism-proxy:3.0.11099-ltsc2019     9090/tcp, 9100/tcp           prism-proxy
59b615950e2b 127.0.0.1:5000/planninganalytics/couchdb:234-ltsc2019               5984/tcp                     couchdb
1c0305d7d945 127.0.0.1:5000/planninganalytics/share-app:1.0.605-ltsc2019         9700/tcp                     share-app
010ac1fac8db 127.0.0.1:5000/planninganalytics/mongo:1.0.205-ltsc2019             27017/tcp                    mongo
481b8cb26b29 127.0.0.1:5000/planninganalytics/prism-app:3.0.5536-ltsc2019        9600/tcp                     prism-app
78709cb2d0d1 127.0.0.1:5000/planninganalytics/palm-service:1.0.340-ltsc2019      9085/tcp                     palm-service
545cf6eb986f 127.0.0.1:5000/planninganalytics/pa-content-service:1.0.310-ltsc2019 9191/tcp                    pa-content
61093630f145 127.0.0.1:5000/planninganalytics/redis:1.0.206-ltsc2019             6379/tcp                     redis
4e149a0ae6ea 127.0.0.1:5000/planninganalytics/pa-cdn:3.0.9788-ltsc2019           8080/tcp                     cdn
927748e22277 127.0.0.1:5000/planninganalytics/share-proxy:1.0.605-ltsc2019       9070/tcp                     share-proxy
8004ed0c651d 127.0.0.1:5000/planninganalytics/pa-predict-svc:1.0.1054-ltsc2019   9610/tcp                     pa-predict
0b084764c655 127.0.0.1:5000/planninganalytics/tm1proxy:1.0.411-ltsc2019          1339/tcp                     tm1proxy
394e473a354d 127.0.0.1:5000/planninganalytics/admintool:1.0.340-ltsc2019         8888/tcp                     admintool

Command docker images will list all installed images, should normally be these:

REPOSITORY                                       TAG                  IMAGE ID     CREATED      SIZE
127.0.0.1:5000/planninganalytics/monitor         2.0.88.3035-ltsc2019 cdd1118734aa 7 weeks ago  5.35GB
127.0.0.1:5000/planninganalytics/pa-glass        3.0.9788-ltsc2019    eda31db65292 2 months ago 5.27GB
127.0.0.1:5000/planninganalytics/pa-cdn          3.0.9788-ltsc2019    e30ce3e584eb 2 months ago 5.34GB
127.0.0.1:5000/planninganalytics/prism-proxy     3.0.11099-ltsc2019   ad0700244d5f 2 months ago 4.77GB
127.0.0.1:5000/planninganalytics/share-proxy     1.0.605-ltsc2019     7c0f57f0564c 2 months ago 4.71GB
127.0.0.1:5000/planninganalytics/share-app       1.0.605-ltsc2019     30028e59100d 2 months ago 4.72GB
127.0.0.1:5000/planninganalytics/pa-gateway      1.0.1098-ltsc2019    bc188fbdba7e 2 months ago 4.71GB
127.0.0.1:5000/planninganalytics/prism-platform  3.0.2365.2-ltsc2019  1af1c76c5ebe 2 months ago 5.66GB
127.0.0.1:5000/planninganalytics/prism-app       3.0.5536-ltsc2019    149080a8fc2d 2 months ago 4.73GB
127.0.0.1:5000/planninganalytics/palm-service    1.0.340-ltsc2019     5870fb15710e 2 months ago 4.76GB
127.0.0.1:5000/planninganalytics/tm1proxy        1.0.411-ltsc2019     301bf315ca8b 2 months ago 4.63GB
127.0.0.1:5000/planninganalytics/bss             1.0.1397-ltsc2019    16a9f3403a03 2 months ago 5.32GB
127.0.0.1:5000/planninganalytics/wa-proxy        1.0.1020-ltsc2019    d365a00fbcb0 2 months ago 4.73GB
127.0.0.1:5000/planninganalytics/paw-ui-api      1.0.260-ltsc2019     9e3f8ca98062 2 months ago 4.82GB
127.0.0.1:5000/planninganalytics/async-service   1.0.387-ltsc2019     f7e111569a61 2 months ago 4.82GB
127.0.0.1:5000/planninganalytics/pa-predict-svc  1.0.1054-ltsc2019    6dabd0bfa755 2 months ago 5.34GB
127.0.0.1:5000/planninganalytics/user-admin      1.0.737-ltsc2019     e4ea0b9f71cf 2 months ago 4.82GB
127.0.0.1:5000/planninganalytics/neo-provision   1.0.392-ltsc2019     7c04066c0fed 2 months ago 5.35GB
127.0.0.1:5000/planninganalytics/couchdb         234-ltsc2019         7832c5ecc13c 2 months ago 4.93GB
127.0.0.1:5000/planninganalytics/neo-idviz       9.0.982-ltsc2019     6847d7d6725d 2 months ago 5.55GB
127.0.0.1:5000/planninganalytics/pa-plan-service 1.0.2023051901-ltsc2019 04c8517f2f3a 2 months ago 5.28GB
127.0.0.1:5000/planninganalytics/admintool       1.0.340-ltsc2019     428093815025 2 months ago 4.72GB
127.0.0.1:5000/planninganalytics/pa-content-service 1.0.310-ltsc2019  bfa8b7dcb3f4 2 months ago 4.73GB
127.0.0.1:5000/planninganalytics/atlas-service   125-ltsc2019         f012ea094ed4 2 months ago 5.31GB
127.0.0.1:5000/planninganalytics/share-platform  1.0.425-ltsc2019     9ff87c1b417a 2 months ago 5.29GB
127.0.0.1:5000/planninganalytics/bss-init        1.0.342-ltsc2019     caf9f295cdcb 2 months ago 4.71GB
127.0.0.1:5000/planninganalytics/redis           1.0.206-ltsc2019     c5f67bbdafc5 2 months ago 4.64GB
127.0.0.1:5000/planninganalytics/mongo           1.0.205-ltsc2019     852817ecb6fe 2 months ago 4.85GB
127.0.0.1:5000/planninganalytics/ibm-java8       225-ltsc2019         7d2f0cc5bd1f 2 months ago 5.11GB
127.0.0.1:5000/planninganalytics/couchdb-init    1.0.835-ltsc2019     85873eaa9a40 2 months ago 4.62GB

 

If you are missing a image, the installation have failed. If not all containers is running, then you may have issues with your Anti-virus software.

Uninstall Trellix/McAfee and reboot server and try again to install PAW.

 

More Information:

https://www.ibm.com/support/pages/download-ibm-planning-analytics-local-v20-planning-analytics-workspace-release-88-fix-central

https://exploringtm1.com/how-to-install-planning-analytics-workspace-to-windows-server-2019/

https://www.ibm.com/support/pages/after-each-reboot-some-planning-analytics-workspace-containers-are-failing-start

https://circleci.com/blog/docker-and-cicd-tutorial-a-deep-dive-into-containers/

https://gist.github.com/danijeljw/a7a2553bd06742648172363ce3983a9a

Product:

Planning Analytics 2.0.9.18

Issue:

How create a simple check on input values in a TI process?

Solution:

Ad a IF statement in the PROLOG tab that check the input values against size, simplest to ensure the values entered is real – keep the size correct.

You have parameters the user should enter, then you need to do some simple check that the values entered are realistic.

ProcessQuit will terminate that process. Metadata and Data will not be executed.

ProcessBreak will stop processing the source and proceed directly to the Epilog tab (without returning an error handle to the TI).

More Information:

https://www.wimgielis.com/tm1_break_EN.htm 

https://exploringtm1.com/processquit-tm1-command-use-and-syntax/ 

https://exploringtm1.com/itemreject-tm1-function-syntax-use/ 

This example is simply checking if an element entered into a parameter exists in a dimension using a DIMIX and if it doesn’t, it puts a message in the log and quits the process.

IF ( DIMIX ( 'Location', pLocation) = 0);
sErrorMessage = 'The Location entered does not exist';
ItemReject ( sErrorMessage );
ENDIF;

https://www.ibm.com/docs/en/cognos-tm1/10.2.2?topic=basics-string-length-limit-in-turbointegrator#StringLengthLimitinTurboIntegrator_NB5009
https://code.cubewise.com/blog/tm1-hidden-features

Product:

Planning Analytics 2.0.9.17

Problem:

The calculated cell does not contain a zero value, instead it contain an old number from before. The Trace Feeder also show that the empty cell have a numbers, that are used in the consolidation. The cube does not have FEEDERS, but it is feed from a different cube.

Running CubeProcessFeeders ( ‘cubename’ ) – solve the problem, until next restart of the TM1 instance.

Solution:

IBM is aware of a defect in Planning Analytics versions 2.0.9.15 IF2 through 2.0.9.17. Rule-derived cells are not calculating after a TM1 database restart when the cube doesn’t have a feeder statement. This defect is addressed in Planning Analytics 2.0.9.18, available 10 July 2023.

If we add a feeder to the rules file for the cube, then the values are correct in the consolidation cell.

You can also create a TM1 TI process with:

CubeProcessFeeders ( 'thecubename' );

Then create a TM1 chore that will run that every week, but do not activate it.

Click “create new chore” in TM1 Architect.

Select the TM1 TI process you created for “run cubefeeders” above.

Next step select that the chore should run every 7 day, and save it with a name “S. 1010 run cubefeeders”.

Do not active the chore.

Go to the TM1S.CFG file for your TM1 instance.

Add this line:

StartupChores=S. 1010 run cubefeeders

This should give at the start of the TM1 instance, the TI process in that core is run before uses can login to the TM1 application.

In tm1server.log

21620 [] INFO 2023-07-13 14:12:59.743 TM1.Chore Executing Startup Chore “S. 1010 Run cubefeeders”
21620 [] INFO 2023-07-13 14:12:59.744 TM1.Process Process “S. 1111 run cubefeeders” executed by chore “S. 1010 run cubefeeders”

 

More Information:

https://blogs.perficient.com/2014/09/28/cognos-tm1-server-on-start-up/ 

https://www.ibm.com/docs/en/planning-analytics/2.0.0?topic=feeders-feeding-one-cube-from-another 

In this example we have cube A and cube B. Cube B is very similar to cube B but it has one more dimension

Cube A
Time
Measures

Cube B
Locations
Time
Measures

Say you have a sales value in cube A and you want to split it across the locations in cube B. The rule in cube B might look something like:

[‘sales’] = N: DB(‘cube A’,!Time,!Measues) * DB(‘Location Split’,!Location,!Time); (The latter being a lookup cube)

You will then have a feeder from A to B. It will look something like this:

[‘Sales’] => DB(‘Cube B’,’All Locations’,!Time,!Measures);

In the example above the Location dimension does not exist in cube A. When you have a case like this you need to select one item within the unknown dimension. In this case I have selected a consolidation called ‘All Locations’. This will then in turn feed all it’s children. If you do not have a consolidation like this create one. You can then add all children to it.

https://www.tm1forum.com/viewtopic.php?t=274 

https://www.ibm.com/support/pages/tm1-server-feeders-guidelines-and-best-practices 

https://www.decisionsystems.com/wp-content/uploads/2016/05/IBM-Cognos-TM1-Feeders-Best-Practices.pdf 

https://code.cubewise.com/blog/mastering-conditional-feeders-in-tm1

https://blog.octanesolutions.com.au/using-rules-and-feeders 

https://www.ibm.com/support/pages/node/7005575 

Product:
Planning Analytics 2.0.9.17
Microsoft Windows 2019 server

Problem:

How see memory usage of Feeders and other cube data?

Possible solution:

The }StatsByCube control cube captures information about the cubes in your TM1 application. You’ll need to enable Performance Monitor either by right-clicking on your TM1 instance in Architect and choosing Start Performance Monitor or by adding PerformanceMonitorOn=T to your TM1s.cfg file – the latter change requires a service restart to take effect.

After Performance Monitor starts, it takes a few seconds for the counters to begin writing to the }StatsByCube cube.

When you open }StatsByCube, the most useful view when starting out is to put the LATEST member from the }TimeIntervals in the title and the }StatsStatsByCube and }PerfCubes dimensions in the rows and columns. The counters you want to focus on are Memory Used for Views and Number of Stored Views. These represent the amount of RAM (in bytes) used for Stargate Views and the number of Stargate Views created for this specific cube.

1 Megabyte = 1,048,576 bytes
https://www.gbmb.org/gb-to-mb

Memory used for feeders below should then be 458 865 488 bytes = 458 Mb RAM for only feeders. They in most cases does not change.

More Information:

https://www.ironsidegroup.com/blog/tm1-stargate-views-explained/ 

https://blog.octanesolutions.com.au/performance-enhancements-using-tm1-cached-views

https://everanalytics.wordpress.com/2016/03/07/vmm_vmt_explained/

https://www.ibm.com/docs/en/planning-analytics/2.0.0?topic=cubes-performance-monitoring-control