Pulse Troubleshooting (Windows)
Sisense Pulse allows you to stay on top of your most important KPIs across all your dashboards and your ElastiCube builds status. If you face any issues with Sisense Pulse, the first step is to identify if none of the alerts are working, or whether it's an issue for specific notifications such as email reports or push notifications created by the system. If no alerts are created (meaning you see no notifications in the notification icon), this could indicate that Pulse communication is either blocked or isn't running successfully. No Alerts are Created If you do not receive any alerts, verify that the following services are running: In Windows Services Manager for Sisense V7.2 and later, verify that Sisense.Broker is running: 2. In Task Manager, under Details, verify that Sisense.AlertingMQ.exe and erl.exe are running. 3. Verify that port 5672 is open on the Sisense server for the RabbitMQ system to have open communication. When Pulse is not running as expected, we strongly suggest trying and restarting the Sisense.Broker service and follow Steps 1 and 2 again to see if the issue is resolved. If after restarting the services Pulse is still not running as expected, the next step is to verify that the ElastiCube Manager is creating the proper notifications. You can verify this by navigating to %ProgramData%\Sisense\PrismServer\PrismServerLogs\ECS.log and search for ‘EventsPublishManager’ in the log. If there are no messages with ‘EventsPublishManager’, it means that Pulse was not triggered or some error message could be logged that describes the cause of the issue. In rare cases there might be an issue with RabbitMQ database. Make sure the following folder exists in your environment C:\Program Files\Sisense\Infra\Rabbitmq. Specific Notifications are not Received If the notifications are displayed in Sisense in your Notifications Feed, but you do not receive emails or push notifications in the mobile app, make sure you have checked these options under the Alert settings when you created the alert: Regarding push notifications in Sisense Mobile, make sure that all users that are supposed to get push notifications are logged in to the mobile application and have the proper application permission for popups. If some users do not receive email notifications, check if they can receive any system emails like ‘forgot password’ or when a dashboard is shared. In case no emails are sent from the system, review the email troubleshooting guide. Another useful test to conduct is to try running the Pulse on a different widget in order to make sure this is not a widget related issue. *Note* for Split Deployment Models Prior to Sisense 7.4 If you are not receiving pulse alerts and have a split deployment set up (High Availability, one cube server and one web server, etc) please follows the steps below to see if this resolves the issue you are facing. On the cube server, open "C:\ProgramData\Sisense\PrismServer\ElastiCubeConfiguration.xml" and edit the RabbitMQ IP address to be the IP (or name) of the app/web server Restart the Elasticube Management service (ElastiCubeManagementService -or- Sisense.ECMS and Sisense.ECMServer) On the app server, check to make sure ERL.exe and Sisense.Alerting.MQ.exe is running and 5672 is open from build to app server Restart Sisense.Pulse (or Sisense.Broker) Do a test build that you expect to receive pulse alerts for Still Not Receiving Pulse Alerts? If you are still not able to resolve the issue with the above information, please make sure to submit a ticket with screenshots and results of the above steps and we’ll happily assist!1.5KViews0likes0CommentsOverview to Interpreting Sisense 7.2+ Logs
In Sisense Version 7.2 and beyond, we replaced many components of the IIS web hosting with a NodeJS framework, as well as making many new structural changes to the software. This allowed us to categorize the key components of the application to categories of microservices. Each microservice performs some essential functionality in the software, and each one also has it's own logging file path associated with it. While this certainly isn't an all inclusive guide, this article is intended to shed light on the logging processes of the software. In order to interpret the logs for a particular issue, a user will need to first narrow down exactly which service is being affected. This can best be done by understanding the services list at the following article: Identifying Sisense Services Once we identify where exactly the issue is, we can find most logs for each individual service at the corresponding file path in: C:\ProgramData\Sisense\application-logs The main exception of logs that would not be found in the individual service logs, are the following: Build Logs (which detail each individual build error and successes, and often times contains better error reporting than the GUI in the elasticube managers): C:\ProgramData\SiSense\PrismServer\ElastiCubeProcessLogs<YourElastCubeName> Prism Server logs: C:\ProgramData\SiSense\PrismServer\PrismServerLogs Sisense Web log: C:\ProgramData\Sisense\PrismWeb\Logs ElastCube build logs: C:\ProgramData\SiSense\PrismServer\ElastiCubeProcessLogs<YourElastCubeName> MongoDB: C:\ProgramData\Sisense\PrismWeb\Repository\DB iisnode (web server) logs: C:\Program Files\Sisense\PrismWeb\vnext\iisnode Many log paths include an "error" log and then a general log name that does not include "errors" or "stderr". This is done as a way to simplify the troubleshooting process by filtering out all of the errors into their own log file, this is not always the case for each log, though, and sometimes it can be beneficial to look at the log file that doesn't include errors to see the process flow of the application leading up to, during, and after an issue has been noticed. All of the logs contain single instruction level data, meaning that, while they can be rather large, each instruction is associated with a particular timestamp, so it is important to know the date and time that the error occurred beforehand. Once you are able to narrow down the individual service and time stamp that the error occurred with, you can go to that section of logs and begin your digging. As multiple processes can occur in a very small window of time, most users find it beneficial to search for the term "fail", "failure", or "error" to narrow down exactly which line might be relevant to their search. Once a user has found the particular error that they feel could be responsible for the particular issue they are having, there are a few key elements to look for. While some errors are simple to understand, such as a build failing from needing more space on the hard drive, others could be more challenging since they are often written at the software developer level, and may even include a stack trace of where exactly in the program code the issue occurred. For errors of this later type, it is best to document the error, and open a service ticket with the support team for further analysis. Users should also note that these microservices often call API endpoints and other pieces from other microservices, which may require them to do some further troubleshooting in those particular set of logs. For example, a user may notice that an API call in the API-Gateway logs is calling an API that has the term "Galaxy" in it, and this call is returning a 500 code (an internal service error code which could have many different causes, and is considered to be a very generic error), the user should be able to go into the galaxy logs for that particular time stamp, and see the call being made, and find out more specifically what caused it to fail. All of the logs contain single instruction level data, meaning that, while they can be rather large, each instruction is associated with a particular timestamp, so it is important to know the date and time that the error occurred beforehand. Once you are able to narrow down the individual service and time stamp that the error occurred with, you can go to that section of logs and begin your digging. As multiple processes can occur in a very small window of time, most users find it beneficial to search for the term "fail", "failure", or "error" to narrow down exactly which line might be relevant to their search. Once a user has found the particular error that they feel could be responsible for the particular issue they are having, there are a few key elements to look for. While some errors are simple to understand, such as a build failing from needing more space on the hard drive, others could be more challenging since they are often written at the software developer level, and may even include a stack trace of where exactly in the program code the issue occurred. For errors of this later type, it is best to document the error, and open a service ticket with the support team for further analysis. Users should also note that these microservices often call API endpoints and other pieces from other microservices, which may require them to do some further troubleshooting in those particular set of logs. For example, a user may notice that an API call in the API-Gateway logs is calling an API that has the term "Galaxy" in it, and this call is returning a 500 code (an internal service error code which could have many different causes, and is considered to be a very generic error), the user should be able to go into the galaxy logs for that particular time stamp, and see the call being made, and find out more specifically what caused it to fail.1.2KViews0likes0CommentsGenerating a HAR file for troubleshooting Sisense
When troubleshooting complex issues in Sisense such as PDF export, widget not loading etc., it is sometimes necessary for our support team to obtain additional information about the network requests that are generated in your browser while an issue occurs. A technical solutions engineer may request you to record a .HAR file, or a log of network requests, while that issue is occurring and then provide that to them for further analysis. Below are some instructions about how you can easily generate a HAR file using different browsers. Note: Keep in mind that HAR files contain sensitive data, including content of the pages you downloaded while recording and your cookies. This allows anyone with the HAR file to impersonate your account and all the information that you submitted while recording (personal details, passwords, credit card numbers, etc.). To generate the HAR file for Chrome Open Google Chrome and go to the page where the issue is occurring. Look for the Vertical ellipsis button and select More Tools > Developer Tools. From the panel opened, select the Network tab. Look for a round Record button in the upper left corner of the tab, and make sure it is red. If it is grey, click it once to start recording. Check the box Preserve log. Click the Clear button to clear out any existing logs from the Network tab. Reproduce the issue that you were experiencing before, while the network requests are being recorded. Once you have reproduced the issue, in Chrome, click Download. Then save the file to your computer: Save as HAR with Content Upload your HAR file to your ticket or attach it to your email so that our Support team can analyze it. The instructions are the same for a MAC computer or a Windows computer. Here is a brief animation showing this process: To generate the HAR file for Firefox Open Firefox and go to the page where you are experiencing trouble. Select the Firefox menu (three horizontal parallel lines) at the top-right of your browser window, then select Web Developer > Network. The Developer Network Tools opens as a docked panel at the side or bottom of Firefox. Click the Network tab. The recording autostarts when you start performing actions in the browser. Once you have reproduced the issue and you see that all of the actions have been generated in the Developer Network Panel (should just take a few seconds), right-click anywhere under the File column, and click on Save all as Har. Save the HAR file somewhere convenient. Upload your HAR file to your ticket or attach it to your email so that we may analyze it. The instructions are the same for a MAC computer or a Windows computer. To generate the HAR file for Edge Edge natively produces HAR files. For more instructions, see the instructions from the Microsoft website. Open the Network tool in F12 developer tools. Reproduce the issue. Export captured traffic as a HAR (CTRL + S). To generate the HAR file for Internet Explorer Open Internet Explorer and go to the page where the issue is occurring. Press F12 on your keyboard (or click the gear icon > F12 Developer Tools) Click the Network tab. Reproduce the issue that you were experiencing before, while the network requests are being recorded. Once done click the Save button. Give the trace a filename and click the Save button which will save it as a .har file or .xml file. Upload your HAR file to your ticket or attach it to your email so that we may analyze it. The instructions are the same for a MAC computer or a Windows computer. Please NOTE: You need to be aware that HAR files contain sensitive data, including the content of the pages you downloaded while recording and your cookies. Examples of information contained in the HAR file include personal details, user ID, passwords, and credit card numbers. You can always when the file is downloaded, replace the sensitive data.14KViews1like2CommentsTroubleshooting Guide: General Website Loading Issues
This page is meant to provide an initial reference for website loading issues. Topics: 1. Page Doesn't Show Up 2. No Dashboard Panel on Left Side of Analytics Page/Bottom of Analytics Page 3. Queries are not Returning Data (Including Dashboards) 1. Page Doesn't Show Up Note: If you have just set up SSL on 7.2 refer to our SSL troubleshooting guide here. Sisense Version 7.2 and above On Sisense 7.2 and above, this error could look like the screenshot below: To resolve, follow steps below: On your Sisense webserver, open the Control Panel Click on 'Administrative Tools' Click on 'Services' For each of the services, please find them in the list and repeat steps 5&6, in the following order: Sisense.Gateway Sisense.Broker Sisense.Galaxy Right-click on it and select 'Stop' (make sure its status field becomes blank) Right-click on it and select 'Start' (make sure its status field changes to "Running") If this does not resolve the issue you are facing, please create a ticket with our support team that includes the application-logs directory on your Sisense webserver (located C:\ProgramData\Sisense\application-logs). Sisense Version 7.1 and below Sisense Verison 7.1 and below runs on the Microsoft program Internet Information Services (IIS). Sisense Version 7.2 runs on NodeJS and most of the site no longer runs on IIS which means you are not likely to run into this same issue on Sisense 7.2 and above. On Sisense 7.1 and below, this error could look like the screenshot below: To resolve, follow the steps below to restart IIS: On your Sisense webserver, go to the Start Menu and type 'cmd' Right-click the shortcut and choose 'Run as Administrator In the command line, type: 'iisreset' hit Enter, and wait for the IIS server to restart. Close the command prompt window. Try to reload the website, keep in mind it can take a few minutes for the site to come back up (longer when there are very large cubes or a large number of cubes). You'll know the site is back up when where are 7+ node.exe processes within Task Manager If this does not resolve the issue you are facing, please create a ticket with our support team that includes the iisnode directory on your Sisense webserver (located C:\Program Files\Sisense\PrismWeb\vnext\iisnode). 2. No Dashboard Panel on Left Side of Analytics Page/Bottom of Analytics Page This issue could look like the screenshot below where you are not able to see any of your dashboards in the left panel or in the section at the bottom of the Analytics page: Sisense Version 7.2 and above To resolve, follow the steps below to start services: On your Sisense webserver, open the Control Panel Click on 'Administrative Tools' Click on 'Services' For each of the services, please find them in the list and repeat steps 5&6, in the following order: Sisense.Galaxy Sisense.Gateway Sisense.Broker Right-click on it and select 'Stop' (make sure its status field becomes blank) Right-click on it and select 'Start' (make sure its status field changes to "Running") Open your Sisense website within a new browser window If this does not resolve the issue you are facing, navigate to the following URL: /app/test (for example http://localhost:8081/app/test) and see which services (if any) are failing. Please create a ticket with our Support Team that includes the application-logs directory on your Sisense webserver (located C:\ProgramData\Sisense\application-logs) and a screenshot of the results of the /app/test site. Please also mention if your organization uses AD within Sisense. Sisense Version 7.1 and below This is unlikely to happen on Sisense Version 7.1 and below. If you do run into this issue, please create a ticket with our support team that includes the iisnode directory on your Sisense webserver (located C:\Program Files\Sisense\PrismWeb\vnext\iisnode) and the DB directory on your Sisense webserver (located C:\ProgramData\Sisense\PrismWeb\Repository\DB). 3. Queries are not Returning Data (Including Dashboards) The primary symptom is that the dashboard returns yellow diamonds for every widget even through the ElastiCube exists and is running as shown in the screenshot below: The dashboard could also show the loading icon for a very long time, or 500 error Sisense Version 7.2 and above Disclaimer: If your organization is using Active Directory (AD) please open a ticket with our support team to assist in troubleshooting. To troubleshoot On your Sisense webserver, navigate to the following URL: http://localhost:14996/paths and see what the site responds with: If you see data returned, like shown in the screenshot below: Restart the ECMS service by following the steps below: On your Sisense webserver, open the Control Panel Click on 'Administrative Tools' Click on 'Services' For each of the services, please find them in the list and repeat steps 5&6, in the following order: Sisense.ECMS Right-click on it and select 'Stop' (make sure its status field becomes blank) Right-click on it and select 'Start' (make sure its status field changes to "Running") If you do not see data returned, like shown in the screenshot below: Restart IIS by following the steps below: On your Sisense webserver, go to the Start Menu and type 'cmd' Right click the shortcut and choose 'Run as Administrator' In the command line, type: 'iisreset' hit Enter and wait for the IIS server to restart. Close the command prompt window. Try to reload the dashboard. If the steps above did not resolve your issue, please do the following to create a new catalog folder which will most likely resolve the issue: Important note: Please be aware that your build-scheduling settings will be erased after the operation, so you will need to re-configure these on all your ElastiCubes. Open the start menu or Task Manager and search for 'Services' Find the following services and stop them 'Sisense.ECMS' 'Sisense.ECMServer' Open the following path - C:\ProgramData\Sisense\PrismServer and rename the 'ElastiCubeCatalog' to 'ElastiCubeCatalog1'. Open the 'Services' as previously done and start the 'Sisense.ECMS' and 'Sisense.ECMServer' service once again, this will take a bit longer than usual forcing Sisense to create a new catalog folder. Once the services are back up, try to reload the dashboards If this does not resolve the issue you are facing, please create a ticket with our support team that includes The ECS logs (located here: C:\ProgramData\Sisense\PrismServer\PrismServerLogs). Also inform the agent what you have tried to do to resolve the issue so far and whether your organization has integrated Active Directory (AD) with Sisense. Sisense Version 7.1 and below To troubleshoot, follow the steps to restart the ElastiCube Management Service: On your Sisense webserver, open the Control Panel Click on 'Administrative Tools' Click on 'Services' For each of the services, please find them in the list and repeat steps 5&6, in the following order: ElastiCubeManagementService Right-click on it and select 'Stop' (make sure its status field becomes blank) Right-click on it and select 'Start' (make sure its status field changes to "Running") If the steps above did not resolve your issue, please do the following to create a new catalog folder which will most likely resolve the issue: Important note: Please be aware that your build-scheduling settings will be erased after the operation, so you will need to re-configure these on all your ElastiCubes. Open the start menu or Task Manager and search for 'Services' Find the 'ElastiCubeManagementService' and stop it Open the following path - C:\ProgramData\Sisense\PrismServer and rename the 'ElastiCubeCatalog' to 'ElastiCubeCatalog1'. Open the 'Services' as previously done and start the 'ElastiCubeManagementService' service once again, this will take a bit longer than usual forcing Sisense to create a new catalog folder. Try to reload the dashboard. If this does not resolve the issue you are facing, please create a ticket with our support team that includes The ECS logs (located here: C:\ProgramData\Sisense\PrismServer\PrismServerLogs). Also inform the agent what you have tried to do to resolve the issue so far and whether your organization has integrated Active Directory (AD) with Sisense.6.5KViews1like1CommentBuild Errors Troubleshooting
When a build fails it's not always easy to identify the root cause of the failure. This post contains How-To troubleshoot your own build failure and popular build errors. You can search (Ctrl+F) this article for errors or search similar errors by build stages. Topics: How-To Troubleshoot your build failure Accumulative or Schema Changes builds introduction Troubleshooting Finalization stage time Troubleshooting ODBC driver Useful Articles Common errors in Importing data stage Common errors in Custom SQL stage Common errors in Initialization stage Common errors in Finalization stage Quick Troubleshooting and general introduction ElastiCube builds can be split into to three main stages: 1) Data Import 2) Custom SQL (Table\ Column) 3) Initializing/Finalizing a) Initializing - Creation of a proper structure for the data to be stored in the local environment. Something fundamental is failing → restart services b) Finalization - Arranging metadata and swapping the process with new data available for user's queries Accumulate build and Schema Changes are more fragile and disk consuming than Full build operations. If time allows, always go with Full build (‘Delete existing data’) as an immediate recovery. In Accumulative or Schema Changes builds, the Initializing and Finalizing stages contain the following operations: Initializing - Backup existing data folder to the _Alternative data folder to keep _Alternative available for querying during the Accumulative build of the main folder Finalizing - Copying all newly accumulated/imported data from the main folder to the _Alternative folder so they're both up to date Troubleshooting Finalization stage time: During finalizing stage Sisense removes the previous completed build and repoints the process to the new one. It requires additional resources of Disk Drive which can be longer then expected. Please ensure that Disk drive system works fine. Have disk defragmentation to the Disk Drive where cubes are located. Troubleshooting ODBC driver: Testing your ODBC driver with ODBCTest tool - Microsoft offers a connectivity test tool for ODBC connector. By running the ODBC Test tool you will be able to connect and query the underlying dataset. Download ODBCTest tool through Microsoft website Useful Articles A Tool To Help You Read an Compare ElastiCube Build Logs Clean Up Your C Drive Elasticube Plugins Server Console Preferences & Configuration Elasticube Manager Hangs When Trying To Add Amazon Redshift Data Turn Off Non-Blocking Accumulative Builds Important Note: When submitting a ticket to support, add as much information as possible, such as build stage, data source, screenshot of the error message, and attach relevant logs: Build Process logs: %ProgramData%\SiSense\PrismServer\ElastiCubeProcessLogs\<YourElastCubeName> ElastiCube Server Logs: %ProgramData%\Sisense\PrismServer\PrismServerLogs Importing data Error message: Naming issues "Invalid object name" Or "Could not find server '{S1}' in '{S2.S3}'. Verify that the correct server name was specified" Build stage: Importing data from a datasource Note: Schema name contains one or two dots (For example: Schema.Name.BP or Schema.Name) Troubleshooting: Edit the query in the ElastiCube and wrap the schema name in double-quotes (SELECT * FROM "Schema.Name".[table] Error message: 403:unauthorized error Build stage: Importing data from another ElastiCube Troubleshooting: This error happens if the user credentials used for logging to the server don't belong to an admin user, as only admin users are allowed through the Sisense ElastiCbue connector. Error message: Naming issues "Import failed - error 500 "Query could not be compiled" [field_name] is ambiguous between 'table_name.field_name' " Build stage: Importing data from another ElastiCube Troubleshooting: If both table name and field name are the same - change one of them in source cube rebuild the cube and retry to import data again Error message: "Exception while reading from stream" Build stage: Importing data from Redshift Troubleshooting: Go to "C:\Program Files\Sisense\DataConnectors\DotNetContainer\Connectors\Redshift\Sisense.Connectors.RedshiftConnector.dll.config" file and change the timeout value from "0" to "3000". After saving the change please restart the Sisense.CLRConnectirsContainer Service and try to run the build again. Error message: "There was no endpoint listening at net.pipe://localhost/CloudManagementService that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details." Build Stage: In the build process or when interacting with ElastiCubes in the ElastiCube Manager Notes: Tends to be sporadic. Troubleshooting: Confirm that the ElastiCube Server is up and running If so, please try to restart services: ElastiCubeManagmentService (Sisense Version 7.1 and below) Sisense.ECMS (Version 7.2 and later) Sisense.ECMServer (Version 7.2 and later) Sisense.Repository Sisense.Oxygen Restart IIS by running 'iisreset' as an Administrator in the command prompt Error message: "Could not get connector for XXX database." Build stage: Importing data from a datasource Troubleshooting: Sisense.CLRConnectorContainer (For Sisense Connectors with Framework - JVM) or Sisense.JVMConnectorsContainer (For Sisense Connectors with Framework -.NET) Error message: "OutOfMemoryException" Build stage: Importing data from a datasource Note: The "Data-import chunk size" setting in the ElastiCube Server Preferences windows is set to a value larger than the available memory. Troubleshooting: Go to SiSense Server Console Click on server preferences Click on "More Settings..." Set "Data-import chunk size" to a value smaller than the max available memory. The default value of this setting is 100000. Error message: “Index is out of range” Or “Memory allocation has failed…” Build stage: Importing data from MongoDB Troubleshooting: A general approach to this issue would be to decrease/minimize the amount of columns generated for that table. There are a few ways to achieve this: If you did not select the virtual tables (containing _VT_ in their name), try selecting the virtual table instead If the error persists even while selecting a virtual table there are 2 options: In the ODBC driver configuration, hide columns that are not necessary for the reporting. Open up the ODBC Data Source Administrator from the windows start menu and configure the MongoDB driver Select Schema definition and then Edit Schema file Check the columns you want to hide, click save, tha lot or documentsen close the dialog Click on “Upload Metadata” to update the schema definition. In the Elasticube manager, delete the previously generated table and bring in the newly generated table, with the less columns. Alternatively, in the Elasticube manager, when you select the tables to bring in, instead of bringing in the table as is, edit the SQL query so that you bring in only those columns needed Instructions on how to do so can be found here. Rebuild Elasticube. Error message: "Import failed - Specified Cast is not valid" Build stage: Importing data from a datasource Note: Affects several connectors in Sisense Version 6.6 and later, including Redshift, PostgreSQL, and Oracle Troubleshooting: For Redshift and PostgreSQL: This issue manifests on Sisense 6.6 and was resolved on Sisense 6.7 For Oracle: This issue manifests on Sisense 6.6 and was resolved on Sisense 7.0. It occurs when importing data with more than 26 digits of precision. Apart from upgrading, the data can be cast/truncated/rounded in a manual query. Error message: “ERROR [HY000] [Simba][Support](50090) Conversion from … failed” Or you see a field in the MongoDB but that field does not exist in the table generated in the Elasticube Manager Build stage: Importing data from MongoDB Note: The MongoDB ODBC driver automatically generates the schema definition based on data sampling. Since the MongoDB schema is dynamic it is possible that documents that were not sampled had a different datatype or structure. Troubleshooting: Better sampling will resolve this issue. Open up the ODBC Data Source Administrator through the windows start menu Select the Mongo driver and click on “Advanced Options” In the documents to sample, increase the number of documents to sample. You can also set it to 0 and sample all documents to get the most accurate schema, however this may take some time, especially if there are a lot or documents: Click OK Click Schema Definition Click Generate All (this may take some time if you sample all documents!) Click Upload Metadata Bring in the new table generated into the Elasticube Rebuild the Elasticube Issue: New CSV files placed in a folder are not picked up in the build process Build stage: Importing data from a folder of CSV files Troubleshooting: Open C:\ProgramData\Sisense\PrismServer\ElastiCubeConfiguration.xml Add a new tag with the following text:<UseDotNetCsvConnector>true</UseDotNetCsvConnector> Restart the ElastiCubeManagement (Sisense Version 7.1 and earlier) or the Sisense.ECMS service and Sisense.ECMServer (Sisense Version 7.2 and later). Error message: "Memory allocation has failed for {ElastiCube name}. Please verify you have sufficient RAM and try to rebuild." Build stage: Importing data from data source tables Troubleshooting: Review the memory usage on the server at the build time. If it's nearly maxed out, try to reduce the number of rows or increase the machine hardware. If the memory is not heavily in use, review the number of columns in the source table. Uncheck 'Import' on unneeded fields, or use a custom import query to only import necessary fields. Error message: "ERROR [28000][Snowflake][ODBC](11570) Required credential settings are missing:{[PWD]}. ERROR [08001][Snowflake][ODBC](10380) Unable to establish a connection with data source. Missing settings:{[PWD]}" Build stage: Importing data from a datasource using an ODBC connector Note: If you are trying to setup a new Elasticube using the Snowflake ODBC connection functionality, but keep getting a password related connection error, there might be a need to hard code the credentials in the Windows Registry. According to the Snowflake documentation this is a safety precaution by Windows: "The Password field accepts a value, but does not store the value. This is a security precaution to ensure passwords are never stored directly in the driver." Troubleshooting: Hard code the credentials in the Windows Registry. To do so, please follow the steps below: Open the Registry Editor (Windows key + R and then type regedit). Once it's open, navigate to Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\{Snowflake driver name} In the right hand pane, right-click on the screen and select New > String value. Name this value uid. After adding, right-click on the newly created object and in the Edit String window, enter in the Value data cell the Snowflake login name. Repeat step 3. Name the new value pwd and repeat step 4) but enter the Snowflake password. Error message: "Import Failed ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified." Build stage: Importing data from a datasource using an ODBC connector Troubleshooting: Confirm you have set up the DSN with ODBC Data Sources (64-bit) (%windir%\system32\odbcad32.exe) Confirm you have set up the DSN as a System DSN rather than User DSN Test the DSN to confirm you can connect successfully before attempting to build Error message: "Import failed - Specified Cast is not valid" Build stage: Importing data from a datasource Note: Affects several connectors in Sisense Version 6.6 and later, including Redshift, PostgreSQL, and Oracle Troubleshooting: For Redshift and PostgreSQL: This issue manifests on Sisense 6.6 and was resolved on Sisense 6.7 For Oracle: This issue manifests on Sisense 6.6 and was resolved on Sisense 7.0. It occurs when importing data with more than 26 digits of precision. Apart from upgrading, the data can be cast/truncated/rounded in a manual query. Error message: "ORA-12504: TNS:listener Was Not Given The SERVICE_NAME In CONNECT_DATA" Build stage: Creating custom SQL expression table Note: The issue is that the connection string to the Oracle DB is expecting a SERVICE_NAME parameter instead of an SID. The difference between them is that SID is the unique name of the instance while the SERVICE_NAME is the alias to the instance Troubleshooting: Choose Add Data (or ElastiCube > Change connectivity > Change source provider if you're just updating an ElastiCube that started failing). In the Connect to Oracle Database window, uncheck the Use Direct Connection checkbox. In the Database server location textbox, enter the following: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=$your_ip)(PORT=$your_port))(CONNECT_DATA=(SERVICE_NAME=$service_name))) The variables you need to input are: $your_ip $your_port $service_name 4. Connect to the server and rebuild. If you need to find out the SERVICE_NAME, you can do so by connecting to the Oracle DB and running the following command: select * from global_name; For more information about the source of the issue visit the following: https://docs.oracle.com/cd/B19306_01/server.102/b14237/initparams188.htm#REFRN10194 Error message: "Failed to load datasources" Build stage: Importing data from a datasource Troubleshooting: 1. Open the Control Panel > Administrative Tools > Services 2. Find each of the following services in the list and repeat steps 3&4. Do this in the following order of services: "ElastiCubeManagmentService" "Sisense.Repository" "SIsense.Oxygen" "Sisense.CLRConnectorsContainer" "Sisense.JVMConnectorsContainer" "SisenseWebExpress" - if you cannot find this service, see step 5. 3. Right-click on the service and select Stop (make sure the Status field becomes blank). 4. Right-click on the service again and select Start (make sure the Status field changes to ‘Running’). 5. In case SisenseWebExpress is not installed, restart the IIS web server: In your Start menu, type 'cmd'. Right-click the shortcut and select Run as Administrator. In the Command line, type: "iisreset", hit Enter and wait for the IIS server to restart. Close the Command prompt window. 6. Refresh your web browser page. 7. If refreshing the web browser didn’t help the issue, delete browsing data in your web browser. Error message: "Connection is not opened" Build stage: Importing data from a datasource Troubleshooting: 1. Open the Control Panel > Administrative Tools > Services 2. Find each of the following services in the list and repeat steps 3&4. Do this in the following order of services: "Sisense.ECMS" "Sisense.CLRConnectorsContainer" "Sisense.JVMConnectorsContainer" 3. Right-click on the service and select Stop (make sure the Status field becomes blank). 4. Right-click on the service again and select Start (make sure the Status field changes to ‘Running’). Custom SQL Error message: "The ElastiCube failed to complete query request (Connection lost)" Build Stage: Building a custom field or custom SQL expression table Note: Can occur on cubes that previously built successfully as the volume of data grows. Less common on later versions of Sisense. Troubleshooting: Review the build logs for the last mentioned column or table Review the SQL query for that field/table. The error indicates that Sisense is having trouble performing the SQL query used to create the field or column. Multiple date/time functions, complex operations, large joins, repeated use of UNION, nested CASE statements, and others are often the culprit. Try to rewrite or restructure the query in a simpler way to test Error message: Updating BBP for 'xxxx' failed. Capacity<Count (xxx < yyy). Build stage: Creating custom SQL expression tables/fields Troubleshooting: Upgrade to Sisense Version 6.6 or later Perform a full build, rather than a schema changes build Review and/or rewrite the custom SQL expression the build is failing on Error message: " Build Stage: During the build on a table/field Notes: May have multiple root causes Troubleshooting: Typically caused by a problematic join in the ElastiCube Manager. Review the last table/column mentioned in the build log for any incorrect joins (massive cross joins/not specifying a join ON clause, joining tables/fields incorrectly). Error message: Exception in DirectCommand.ExecuteReader(): DirectCommand.ExecuteReader failed: Query number 0: SQLException:int:conversion of string '...' failed Build stage: Creating custom SQL expression tables joined to existing tables Troubleshooting: Copy your new Custom SQL expression and save it off somewhere else (such as a Notepad document). Remove the custom table and all indexes on the existing table. Recreate the new table with your stored expression but don't join it to your existing table. Perform a Schema Changes build. Re-add the relationship between the new and the existing table. Perform a Schema Changes build. Initialization Error message: "Accumulative Changes Log Creation Failed Error Create Patch [The requested operation could not be completed due to a file system limitation ]" OR "Accumulative Changes Log Creation Failed Error Create Patch [There is bot enough space on the disk. ]" OR "Accumulative Changes Log Creation Failed" Build Stage: Initializing Build Note: Occurs only on accumulative builds. Can be caused by a Windows OS issue in some cases or there is not enough disk space on your Sisense machine. Troubleshooting: Check that there is adequate disk space Sisense saves temporary copies of the ElastiCube during the build in C:\ProgramData\Sisense\PrismServer\Patches. To move this location to another drive, modify C:\ProgramData\Sisense\PrismServer\ElastiCubeConfiguration.xml: Add on the second-to-last line (just before the </ElastiCubeConfiguration> closing tag), the following text: <DefaultPatchesDirectory>D:\</DefaultPatchesDirectory>, where D:\ is the new patches location Restart the ElastiCubeManagementService If that doesn't resolve the issue, navigate to the Sisense Server Console preferences and uncheck Compress on build (See: Server Console Preferences & Configuration article) Alternatively, defragment the affected drive (Search for Defragment and Optimize Drives on your server > select the driver that the cubes are saved on > click Optimize) Error message: "Connection Timeout: The request channel timed out while waiting for a reply after 00:02:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout." Build stage: Initializing Build Note: Error message comes up in a window in the ElastiCube Manager. This error may be coupled with other erratic or incorrect build behavior. This error is likely the result of Sisense files becoming corrupted. Troubleshooting: Record any ElastiCube Manager scheduled build settings set up to back them up Stop the ElastiCubeManagementService (on Sisense Version 7.1 and earlier) or Sisense.ECMS and Sisense.ECMServer (on Sisense Version 7.2 and later) Go to C:\ProgramData\Sisense\PrismServer Rename ElastiCubeCatalog to ElastiCubeCatalog0 Restart the ElastiCubeManagementService. The service restart may take longer than usual. Re-create your scheduled build settings in the ElastiCube Manager (they may be deleted in the troubleshooting process). Error message: "Elasticube xxxx is already being built" Or build is not starting Build Stage: Initializing Build Note: The ElastiCube server service is running on the system account. This issues can be caused by a Microsoft restriction, when the user running the ElasticubeManagement/Sisense.ECMS service doesn't have sufficient credentials (System account by default). Troubleshooting: Change the logon properties of the ElastiCube Management Service Steps: Go to Control Panel > Administrative Tools > Services Find (On Sisense V7.1 and below) ElastiCubeManagementService (on Sisense V7.2 and above) Sisense.ECMS, right-click and select Stop. Find (On Sisense V7.1 and below) ElastiCubeManagementService (on Sisense V7.2 and above) Sisense.ECMS, right-click and select Properties. Select the Log On tab, select This Account then click Browse. Click Locations. Choose your domain (e.g., Sisense.local in this example) and click OK. Click Advanced. Click Find Now, choose the user logged on to the machine and click OK. The selected user will be added to the names box, click OK. Enter and verify the user’s password, click OK. Restart the service. Error message: "Object reference not set to an instance of an object" Build Stage: Initializing Build (or prior to Initialization) Note: This error can result from a few different issues, most commonly for custom columns and custom tables. It is also helpful to think about what changed in the model before you encountered this error. Troubleshooting: Verify naming and references of each of the custom SQL expression tables and columns. Also try a full build of the cube. Steps: Start out with trying a full build of the Elasticube. If you see this error at the beginning of a build, open each custom SQL table and parse/preview the expression. Verify table and column names match what is in the model. Try a full build. If you still see issues, open each custom column and parse/preview the expression. Verify table and column names match what is in the model. Try another full build. Error message: "Unable to verify the first certificate" Build Stage: Initializing Build (or prior to Initialization) Note: This may indicate that the SSL certificate is not correctly configured (for example, the certificate only has one section, when it should have at least three) Troubleshooting: Please see this post on how to troubleshoot this error Finalization Error message: "ElastiCube XXX is having difficulties closing." Build Stage: Finalizing Build Note: This less likely to happen in Sisense V6.7 or later Troubleshooting: Modify C:\ProgramData\Sisense\PrismServer\ElastiCubeConfiguration.xml Increase <AbacusDbFarmGraceFulTimeoutInSeconds>30</AbacusDbFarmGraceFulTimeoutInSeconds> to 300 Increase <AbacusDbFarmForceFulTimeoutInSeconds>600</AbacusDbFarmForceFulTimeoutInSeconds> to 1200 After the updates, save the file and restart the ElastiCubeManagementService (on Sisense Version 7.1 and below) or Sisense.ECMS and Sisense.ECMServer (Sisense Version 7.2 and later)11KViews1like0CommentsTroubleshooting Generic JDBC Connections
This article is meant to provide initial troubleshooting steps for resolving Generic JDBC driver issues when trying to set this up in Sisense. The JDBC connector allows you to: Establish a connection from Sisense to a datasource that may not have a built-in connector available Send queries between Sisense and the datasource (importing data, custom import queries) Potentially update your connection from ODBC (.NET) to JDBC (Java) When troubleshooting it is helpful to understand at what point you are running into the connection issue Some notable points in the workflow are: On attempting to establish a connection On listing the databases to connect to On listing the schema(s) and tables Resources: Connecting to JDBC - Sisense documentation on configuring a Generic JDBC data source CDATA - Drivers with certified Sisense connectivity Getting Help: Please review the topics below in order to troubleshoot the connection. If you are continuing to see issues with connecting the JDBC driver, please create a ticket with our Support Team with the following information: Datasource you are trying to connect to Zipped up JAR file(s) for the driver Connection info (if you are able to share that info) Connection string What step you are getting stuck on in the Sisense add data workflow What you have tried so far to resolve Any other datasource-specific info Topics: Verify Sisense Set Up Configure Connection String Check Logs Compare Behavior with DBeaver Database Tool Verify Sisense Set Up Folder Location ...\ProgramData\Sisense\DataConnectors\jdbcdrivers\ Be sure to save off your JDBC driver into a folder that Sisense can access. By default we recommend you save off your .jar (and associated files) in the following folder: If you have downloaded a driver from a resource like CDATA, you can use the folder created by unpacking the files according to their instructions: ...\Program Files\CData\<driver name>\lib If your driver requests you use a particular folder path that is ok as long as you reference the path in this parameter in the connection: "JDBC JARs Folder" Using the JDBC Connection The ability to use Generic JDBC connections in Sisense is supported in Sisense Web. If you do not see the generic JDBC icon in your list of available connectors in Sisense web, please log into your sever to establish the connection. This instability was resolved on Sisense Version 7.3+. To set the connection up, please reference this documentation for specific steps: Connecting to JDBC You will need the following information to set up the connection: Connection String JDBC JARs Folder Driver's Class Name Username Password Configure Connection String Each JDBC driver will have specific information that is required to be passed to make a connection to the database. Typically there will be information such as a URL and target server IP or host name. Beyond these pieces of information, each driver will require varying parameters. To formulate the connection string, take a look at the documentation that comes with the driver. The connection string will typically start with "jdbc:" and each parameter will be separated by a semicolon (;) If you are having trouble establishing a connection, please review the documentation of the driver to see if there are any parameters that you can use to adjust the connection such as: Connection Timeout: Sometimes there are parameters that can set the timeout manually Logging: Some drivers allow you to designate an additional log file path (such as C:\temp) and verbosity Streaming Method: Some datasources have configuration on which type of streaming is needed to pull data (such as via API) Authentication Method: Some sources (such as AWS drivers) allow multiple authentication methods Port: Some connections require a port. Be sure the port you are using is open on both the Sisense server and the target datasource server Check Logs The JDBC driver writes to the following folder: %ProgramData%\Sisense\DataConnectors\JVMContainer\Connectors\GenericJDBC These logs are helpful to determine at what point in the connection process the driver is failing. Additionally, some of the red text errors you may see when the connection to the datasource fails () are written to this log. Compare the Behavior with DBeaver Database Tool If the steps above do not assist in getting you closer to successfully connecting to your datasource through a JDBC connection, we recommend testing the connection with a free database connectivity tool. Any tool that allows JDBC connectivity is sufficient, below are instructions to set this up on DBeaver. Using this tool will help narrow down if there are connectivity issues regardless of the tool to connect to the database or if the issue is specific to connecting with Sisense. In a multi-server deployment set up, this tool should installed on the node where builds are being performed. Steps to Download and Set up the JDBC connection: Download DBeaver Community here Run the installer Open DBeaver and navigate to Database > Driver Manager Click New Enter a Driver Name (you choose the name) and the Class Name (as determined by the driver you are using). The driver type should be "Generic" Then click "Add File" and select the driver file(s) you put in the jdbcdrivers folder (or location you put the JDBC driver). Then click "OK" Once the database driver is set up, then click on Database > New Database Connection Select your driver (in this case "TestConnection") then click "Next >" Enter the connection string in JDBC URL as well as the Username and Password (if applicable). Then click "Finish" On the left-hand side of the window you should now see a new connection. Double click on it to attempt to connect. If the connection is successful (you can connect to the database, preview data in tables, etc) there is troubleshooting that will need to be done specifically between Sisense and the datasource. If the connection is not successful in one or more of the steps to view tables, this means there is likely additional troubleshooting that is necessary for the connection string/connection/database settings.1.6KViews0likes0CommentsSSL in Sisense Windows: Questions and Answers (v7.2+)
The method in which SSL (Secure Sockets Layer) is set up has changed in Sisense V7.2. The full reference documentation is located here where each step of setting up SSL is in V7.2 and later verisons is described. This post contains questions/symptoms with corresponding suggested solutions to these issues. Whether your organization is upgrading from a previous version of Sisense (V7.1 or lower) or are just getting started with Sisense, the following is meant to give your organization a starting point for troubleshooting. Topics: 404 Response 403 Response 504 Gateway Error This page can't be displayed/This site can't be reached The client and server don't support a common SSL protocol version or cipher suite Another application is listening on port 443 Build Failure: Unable to verify first certificate Resources: How To Export A Certificate Using The Certificate Export Wizard Build Failure - Unable To Verify The First Certificate Verify Configuration Settings 1. At upgrade to V7.2, was port 443 removed from the bindings of the site? 2. In the Configuration Manager (http://localhost:3030), are the following settings completed? Enable SSL toggled to the on position SSL Certificate and SSL Key populated with your uploaded certificate (or copy-pasted keys) Port set to 443 Internal IP set to the domain of your organization's Sisense website Common Issues: 404 Response: Symptom: When we navigate to https://<host>.<domain>.com we see a 404 response Suggested Resolution: If you see this on the webserver, can indicate that your SisenseWeb site has a 443 binding still in IIS and have not set up the Configuration Manager for SSL. Refer to the Setting Up SSL documentation on how to get started. If you are getting response when navigating to your site on a machine not on the network the Sisense webserver is on, can indicate a networking issue (outside traffic cannot reach your domain). 403 Response: Symptom: When we navigate to https://<host>.<domain>.com we see a 403: Access Denied Explanation: Can indicate that your Sisense webserver may still have the 443 binding attached to your Sisense website in IIS which is conflicting with the settings for SSL in the Configuration Manager. Suggested Resolution: Remove the port 443 binding from IIS then check your setting in the Configuration Manager. 504 Gateway Error: Symptom: When we navigate to https://localhost on the Sisense webserver, we can get to the Sisense site. But when we navigate to https://<host>.<domain>.com we see a 504: Gateway Error. We have also verified that our SSL set up is correct as described in the Verify Configuration section. Explanation: In 7.1 and below Sisense used IIS as a web server. IIS automatically defined the firewall in Windows to allow connectivity on the ports defined. On 7.2 and above you will need to define the inbound rule to allow connectivity. Suggested Resolution: Please follow the steps below: Ensure that port 443 is open on your firewall. If your organization is using a reverse proxy or load balancer, verify that communication with Sisense is on HTTPS. In some cases the request from the reverse proxy/ load balancer is communicating on HTTP with the Sisense server, in that case, change the Configuration Manager page in Sisense to work on that port without HTTPS. Add Node.exe from %ProgramFiles%\Sisense\app\gateway-service\node.exe as an allowed program in Windows Firewall. This page can't be displayed/This site can't be reached: Symptom: When we navigate to https://<host>.<domain>.com we see: Internet explorer: This page can't be displayed Chrome: This site can't be reached Chrome: ERR_CONNECTION_REFUSED Explanation: Can indicate either of the following: There are setting changes needed in the Configuration Manager, particularly the port and Internal IP fields. Traffic on one or more ports that Sisense relies on are blocked on the firewall. Since SSL is no longer set up through Windows IIS, there may be ports that need to be opened to outgoing and incoming traffic. Suggested Resolution: Check over your organization's settings for which port and internal IP the Sisense site is running on to verify they are accurate. Open Windows Firewall application on the Sisense Webserver and follow this article to open traffic both incoming and outgoing traffic on at minimum ports: 443, 8081, and whichever port your organization is running Sisense Web on. A more extensive list of ports to make available externally is here. The client and server don't support a common SSL protocol version or cipher suite: Symptom: When we navigate to https://<host>.<domain>.com we see: This site can’t provide a secure connection <host>.<domain>.com uses an unsupported protocol. ERR_SSL_VERSION_OR_CIPHER_MISMATCH Unsupported protocol The client and server don't support a common SSL protocol version or cipher suite. Explanation: Can indicate any of the following: The certificate was not uploaded in the Configuration Manager but all other SSL settings were performed There is another process running on port 443 If using a CERT and KEY file, the private key is not valid for the certificate Suggested Resolution Steps: SSL Certificate field and/or the SSL Key is blank: Navigate to the Configuration Manager (http://localhost:3030) and verify that the SSL Certificate and the SSL Key sections. If one or both of those fields are empty then you'll need to re-upload your cert (or copy-paste the text of each document). At this time we recommend using Google Chrome to upload certificates. Another Process on Port 443: In the Configuration Manager, change the port 443 to a different port (ex. 442). Save the Configuration Manager and do an IIS reset on the webserver. Navigate to your site via the following URL: ..com:">https://<host>.<domain>.com:<port> (example: https://test.sisense.com:442) If you are able to successfully reach the Sisense site there is likely another process running on port 443. Please follow the steps in the Another application is listening on port 443 section. Other: If the above troubleshooting steps did not help, there is likely something missing in the certificate files that are necessary for web browsers to trust your certificate. Work with your Certificate Authority (CA) to obtain an up to date copy of your site's .pfx or .crt and .key files and upload the files according to this documentation. Try exporting the certificate using the Certificate Export Wizard. More information can be found here. Another application is listening on port 443: Symptom: After looking over the other errors listed in this article your organization is still seeing errors. Suggested Solution: In some cases there are other applications running that are listening to port 443 this is the way to identify it: Navigate to the Configuration Manager (http://localhost:3030) and change the port to 80 and Save Open the Command Prompt and run netstat -aon | find ":443" Use the PIDs listed in CMD to match up the process names in Task Manager. Check if other application are listening to port 443 that are not Sisense.Gateway You can check what Service is running by opening you task manager going to Details or in Services tab and see what is the service behind the PID zIn case that - Open registry by entering regedit on the start menu and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters\UrlAclInfo you can see what Services are using that port The presence of PID 4 indicates that the System is running on 443 Open registry by entering regedit on the start menu and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters\UrlAclInfo you can see what Services are using that port After making sure those services are not essential for the system, stop those services. Once done repeat Step 2 to make sure the issue was resolved. Set up Sisense back to 443 in the Configuration Manager and Save. Wait a minute and try to load the website again via /">https://<host>.<domain>.com Build Error: Unable to verify first certificate If in the Web ECM (ECM 2.0) after setting up SSL, you see the following Build Error: Please following the resolution instruction in the article below: Build Failure - Unable To Verify The First Certificate2KViews0likes0CommentsPerformance Issues Troubleshooting
Overview: This article aims to cover preventing, diagnosing, and resolving performance issues in Sisense. In Sisense, performance is generally referred to as the time it takes to load a dashboard or build a cube. The end goal for many organizations is for users to have a smooth and enjoyable experience when working with their data. The primary method for avoiding performance issues is maintaining a clean environment and and ensuring that your servers meet the minimum requirements for working with Sisense. Not all performance issues can be prevented with a clean environment alone, so this article also covers some of the basics of maximizing and optimizing Sisense performance. Topics: 1. Maintaining a Clean Environment 2. Maximize Dashboard Performance 3. Optimize ElastiCube Performance: A. Decreasing Build Time B. Optimizing Queries 4. Getting Additional Assistance Related Articles: Minimum Requirements and Supported Platforms Sisense Grafana Sisense Performance: A Billion Records In A Single Server Software Performance Issues? It Might be Your Architecture. Maintaining a Clean Environment To maintain a clean and stable environment, we recommend the following best-practices: End Users: Inform end users of new features and any errors you see within the logs related to their dashboards or Elasticubes Hold end users accountable for removing old and unused dashboards if they have dashboard creation abilities Dashboard Designers: Organize dashboards into folders to more easily manage dashboards Remove test dashboards when you're done using them Turn off scheduled email reports that are no longer relevant Data Designers: Remove old Elasticubes that are not in use from the Sisense Server Console Space out builds so there are no more than 4 concurrent builds at one time When adding data to the cube only import the tables and columns you expect to use in the data model and remove tables you no longer need Administrators Remove users who no longer work at your organization or should no longer have access to Sisense Power down and remove Sisense from servers that you are no longer using in your deployment Turn off and remove any plugins that your organization is not using. Also test plugins in non-production environments when possible Clean old Elasticube version C:\ProgramData\Sisense\PrismServer\ElastiCubeData Manage your plugins Maximizing Dashboard Performance Please refer to the following associated article that takes an in-depth look at dashboard performance: Dashboard Performance Best Practices Optimize ElastiCube Performance To optimize Elasticube performance there are two focus areas: Decreasing Build Times Optimize Queries Decreasing Build Time In order to optimize the build time, reduce: Many fields, long strings: Don't import long string fields if they will not be used in the model Always question the need for columns with long strings before adding them to the model (URLs, very long comments) Many dates: Removing time-based data that is not needed will reduce build time (ie. don't import old data if you don't need to) Consider the date range in the requirements of the dashboard and data model Import a Dates File instead of a Custom table to create a date dimension Use the source database when possible: Create views to replace custom tables and import the View Filter out irrelevant data (history, in-active, etc.) Customize the query when adding the data to the Elasticube Optimize custom tables Avoid Processing Power and Time Expensive Operations: Replace UNION with UNION ALL when possible Left and Right joins Consider lookups Filter data within the table Avoid Redundant Operations: Consider sub queries Avoid SELECT * Order by Optimizing Queries In order to optimize the queries in the ElastiCube, do the following: Consolidate: Look up “translation” tables Avoid unnecessary joins Consolidate Facts Calculate custom columns: In large data sets it may be significant Sum and DUPCOUNT are faster than count Joins on indexed fields: Check for casting in custom tables Cast fields in source tables instead of using casting functions Join on numeric fields: Numeric dates Join on Date with no Time component Surrogate Keys: When possible, create in the DB Avoid surrogate keys when big data (consider numeric using this article) Getting Additional Assistance If you are still not able to resolve the issue with the information above, please make sure to submit a support ticket clarifying the following points: When did the issue first begin? Has it ever worked as expected in the past? Have you conducted any recent changes, such as system changes or Sisense version upgrade? Does the issue reproduce at all times, or only in a specific scenario? Does the issue occur across the board, or only on specific dashboards/cubes/users? During the time of the issue, do you find the system under high RAM/CPU utilization? It would be very helpful to receive step by step screenshots, or a short video of the occurring issue, in order to make sure we fully understand the scenario. You can use Windows steps recorder in order to do so (press WIN+R,then type psr and press enter).2.7KViews0likes0CommentsInstall Error Service 'W3SVC' (W3SVC) failed to start
During the install of Sisense, you may run into the following error: We're sorry, There was an error with your Sisense installation Service 'W3SVC' (W3SVC) failed to start. Please restart your computer and try installing again. The W3SVC service is a Windows service that is responsible for making IIS (Internet Information Services) work. The W3SVC service also manages the HTTP protocol and HTTP performance for IIS which needs to be running to allow Sisense (and other sites) to work. This issue is indicating one of two things: IIS or some of the program's components are not installed on the machine and failed to install during the Sisense installation process. One of the IIS services are not currently running (either IIS overall or W3SVC service). Resolution To resolve this issue, please do the following: Installing and Enabling IIS Close out of the Sisense Installation On your machine, search "Turn Windows features on or off" Look for "Internet Information Services", and make sure that all of the components which are checked in this screenshot are checked on your machine: Internet Information Services > World Wide Web Services > Application Development Features Restart your machine. Attempt the Sisense install again If this does not resolve your issue, please reference the Restarting IIS Services section of this article. Restarting IIS Services Restart IIS In your start menu type 'cmd'. Right click the shortcut and choose "Run as Administrator" In the command line, type: iisreset , hit Enter and wait for the IIS server to restart. If you end up getting some sort of error about not having IIS Start the W3SVC Service In the command line, type net start w3svc , hit Enter and wait for the W3SVC service to start If it is already started, the CMD line will tell you Close the command prompt window. Try to run the Sisense installer again as an Admin20KViews0likes0CommentsHow much RAM used by a dashboard/widget (Windows)
To control RAM consumption in Windows you can use the Windows Resource Monitor, the Memory tab. For Linux check this article Resource Monitor can be accessed from Windows Task Manager: You will be interested in 2 graphics Used Physical Memory (RAM) and Commit Charge (Page File, cache, virtual memory) NOTE that if any of RAM or Commit Charge Graphic loaded above 80% will cause an issue of Out of Memory. Even if RAM will be used for 20% but Commit Charge will be used above 80% -85 - this is where issues will begin due to threshold mechanism (Safe-Mode). The Commit charge depends on Page File The Commit charge depends on Page File. Sisense recommends (From Microsoft recommendations) to have a page file 300% of Current RAM but not more than 124GB. To configure page file go to the File Explorer and access the properties of "My Computer" 1. Click on Advanced System Settings 2. Switch to the Advanced tab 3. Go to Settings of Performance 4. In the Performance Options Window, switch to Advanced tab 5. Press on "Change" button in Virtual memory frame 6. remove the settings of a page file from Drive C (No Page File) and press on D drive to set parameters 7. Set the Custom Size 8. as Initial set the maximum amount that you will use (300% of current RAM, but not more than 124 GB), in this case you will avoid issues with defragmentation as the page file will have fixed size. Otherwise, the page file allocation will be increased when needed and that will defragment the drive a lot. 9. Set the max amount of dedicated space 10, after setting up Max and min settings press om "Set" to apply changes 11. press on ok, after that, the system will ask to restart the server in order to apply the changes. Check how much RAM used by a dashboard/widget 1. Make sure that no one else is using the dashboards connected to the same cube as the dashboard that you checking 2. Open Performance Monitor, Task Manager and two separate tabs in your browser: - Dashboard you would like to check - Elasticube Data Tab 3. Restart the ElastiCube: - In Data Tab stop the cube that is a datasource of the Dashboard - Wait for 5-10 sec and start the cube (do not use the "restart" option, to get the correct result you need to stop and then start the cube) 4. In Task manager enable the Command Line, and PID (right mouse click on "status"). 5. In "Command line" allocate the cube that is used by the dashboard and remember the PID. (extend the column). The cube name in a MonetDb style, make sure you're checking the correct one 6. To check the RAM consumption, allocate the cube by PID in the Resource Monitor (memory tab) 7. Reload the dashboard you're checking, and see how much RAM will be used Using the same technique you can check widget usage, to do so open the required widget by pressing on edit (pencil) button, instead of the entire dashboard and you will be able to restart only the widget page that will send the query only from a particular widget. check the demo video https://www.loom.com/share/d1812f68b02f4735a176ed4a607554e9 The main reasons of the performance issues are: - Heavy formulas are used inside widgets. In this case, you can move the calculations to a cube level i.e. create a custom table/column with formulas so they would be calculated when build, and on a dashboard, you will use results and aggregations etc - Data Security. In case of data security, the main issue is that the results of the queries that Sisense usually re-uses between customers cannot be reused. Data Security adds additional join with Data Security that makes sisense think that the query is unique and calculate result again. - Many-to-many Many-to-many The many-to-many relationship is inflating your data due to duplication resulting from the Cartesian product generated from this relationship. Sisense recommend installing the JAQLine plugin in order to inspect the connections between the tables: For more information, see the following articles: Many to Many Relationships Star Schema Multi Fact Schema Also, please check a comprehensive guide we compiled to troubleshoot the performance issue. - Elasticube catalog corrupted. A rare case however could happen. Should be used as " last chance ". How to: Corruption can be caused by connection issues or by insufficient space available on your system (C:\) drive. Make sure no builds are currently running and do the following to rebuild the catalog folder which will most likely resolve the issue: 1. Open the start menu or Task Manager, and search for "Services". 2. Find the following services and stop them: "Sisense.ECMS" and "Sisense.ECMServer". 3. Open the following path - C:\ProgramData\Sisense\PrismServer and rename the folder from "ElastiCubeCatalog" to "ElastiCubeCatalog1". 4. Open the "Services" (same as step 1) and start the "Sisense.ECMS" and "Sisense.ECMServer" services. This may take a longer time than usual because it is forcing Sisense to build a new catalog folder. Important note: Catalog folder rebuild erases all build-scheduling settings. Please re-configure them on all your ElastiCubes2.7KViews0likes0Comments