dimension OLAP Cube cannot processed - ssms

I try to make dimension OLAP Cube, but when I processed the dimension the result is error like this:
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500">
<Object>
<DatabaseID>SSAS_siakad1</DatabaseID>
<DimensionID>DI Mprovinsi</DimensionID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>
Processing Dimension 'DI Mprovinsi' completed.
Start time: 4/5/2021 8:28:17 PM; End time: 4/5/2021 8:28:17 PM; Duration: 0:00:00
Processing Dimension Attribute '(All)' completed.
Start time: 4/5/2021 8:28:17 PM; End time: 4/5/2021 8:28:17 PM; Duration: 0:00:00
Processing Dimension Attribute 'NAMA PROVINSI' completed.
Start time: 4/5/2021 8:28:17 PM; End time: 4/5/2021 8:28:17 PM; Duration: 0:00:00
Errors and Warnings from Response
Internal error: The operation terminated unsuccessfully.
The following system error occurred: The user name or password is incorrect.
Errors in the high-level relational engine. A connection could not be made to the data source with the DataSourceID of 'DWH Siakad', Name of 'DWH Siakad'.
Errors in the OLAP storage engine: An error occurred while the dimension, with the ID of 'DI Mprovinsi', Name of 'DI Mprovinsi' was being processed.
Errors in the OLAP storage engine: An error occurred while the 'NAMA PROVINSI' attribute of the 'DI Mprovinsi' dimension from the 'SSAS_siakad1' database was being processed.
Server: The current operation was cancelled because another operation in the transaction failed.
what should I do to resolve that problem? thank you for advance

I would check if the SSAS instance has, in Security properties, registered the user you use to the full-process, also if user has permissions for ProcessFull in SSAS_siakad1 cube. Try to process the dimension manually.

Related

Errors in the OLAP storage engine: Rigid relationships between attributes cannot be changed during incremental processing of a dimension

I am new to SSAS and I'm facing a confusing problem.
I have a regular process for updating dimensions (with a ProcessUpdate).
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200"> <Object> <DatabaseID>Central</DatabaseID> <DimensionID>Prestatarios</DimensionID> </Object> <Type>ProcessUpdate</Type> <WriteBackTableCreation>UseExisting</WriteBackTableCreation> </Process>
It has been working fine but in the last run I got the following error:
<root xmlns="urn:schemas-microsoft-com:xml-analysis:empty">
<Exception xmlns="urn:schemas-microsoft-com:xml-analysis:exception" />
<Messages xmlns="urn:schemas-microsoft-com:xml-analysis:exception">
<Error ErrorCode="3238002695" Description="Internal error: The operation terminated unsuccessfully." Source="Microsoft Analysis Services" HelpFile="" />
<Error ErrorCode="3240034307" Description="Errors in the OLAP storage engine: Rigid relationships between attributes cannot be changed during incremental processing of a dimension. The error occurred when processing attribute 'Sub Grupo'. Table: 'dbo_Prestatarios', Column: 'SubGrupo', Value: 'A00377'. Source attribute: 'Prestatario'. Key column value(s) of the source attribute: '7384538'." Source="Microsoft Analysis Services" HelpFile="" />
<Error ErrorCode="3240034317" Description="Errors in the OLAP storage engine: An error occurred while the 'Prestatario' attribute of the 'Prestatarios' dimension from the 'Central' database was being processed." Source="Microsoft Analysis Services" HelpFile="" />
<Error ErrorCode="3239837702" Description="Server: The current operation was cancelled because another operation in the transaction failed." Source="Microsoft Analysis Services" HelpFile="" />
</Messages>
I googled this and the cause seems to be that in the source data some of the of the attributes has been changed. However, I reviewed it and the offending record has not been updated at all:
Source data before T-SQL processing:
Key
Grupo
GrupoCubo
Correlativo
IDCubo
7384538
ARIV
A00377
2971
A003772971
Source data after T-SQL processing:
Key
Grupo
GrupoCubo
Correlativo
IDCubo
7384538
ARIV
A00377
2971
A003772971
So I'm not sure why is failling. I restored backups, reprocessed, and get the same results.
I would apprreciate very much any suggestion or advice.
Thanks for reading
If anyone has a similar problem, this is how I solved.
I restored the last known "good" backup for both the transactional and OLAP databases related to the process, and reran all the processes in sequence during all the periods needed -- in this case there were only 2 periods to reprocess.
All the processes reexecuted this way ran smoothly and the error didn't appear again.
I'm assuming that the first time there were an execution error at some point (not sure exactly when) that corrupted the OLAP database and we couldn't fix it. Any attempt we did for that (reprocess dimensions / partitions, etc) only generated more errors.
This incident illustrate the importance of taking backups at key points in time as a part of the processes. Fortunately, we have that policy so we had the proper backups to recover.
Thanks for reading.

Is it possible to create multiple data source objects under the same database executing a single xmla script?

I want to create multiple data source objects under the same database executing the single XMLA script only once.I have tried the below script but it did not work.If I define only a single node, the script executes successfully.But when I add the another same node it gives error. I am newer to this.Please guide.
<Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<ParentObject>
<DatabaseID>Test Database</DatabaseID>
</ParentObject>
<ObjectDefinition>
<DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">
<ID>Test Datasource1</ID>
<Name>Test Datasource1</Name>
<Description>A test datasource1.</Description>
<ConnectionString>Provider=SQLNCLI11.1;Data Source=servername;User ID=user;Password=pass;Initial Catalog=SqlDb</ConnectionString>
<ImpersonationInfo>
<ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>
</ImpersonationInfo>
<Timeout>PT0S</Timeout>
</DataSource>
<DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">
<ID>Test Datasource2</ID>
<Name>Test Datasource2</Name>
<Description>A test datasource2.</Description>
<ConnectionString>Provider=SQLNCLI11.1;Data Source=servername;User ID=user;Password=pass;Initial Catalog=SqlDb</ConnectionString>
<ImpersonationInfo>
<ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>
</ImpersonationInfo>
<Timeout>PT0S</Timeout>
</DataSource>
</ObjectDefinition>
</Create>
Is there a batch element wrapper you can use?

reportPlaySeconds being called regardless of returned interval

I'm using some additional logic to skirt around this issue, but I've noticed reportPlaySeconds being called regardless of the interval value I return.
The Result documentation states:
interval string(128) - Number of seconds to elapse before next report. Note: A value of 0 indicates that no reporting after the start of playback of that track should be issued.
This is an example request request:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.sonos.com/Services/1.1">
<SOAP-ENV:Header>
<ns1:credentials>
<ns1:deviceId>00-01-02-0A-0B-0C</ns1:deviceId>
<ns1:deviceProvider>Sonos</ns1:deviceProvider>
<ns1:sessionId>303-TEMP</ns1:sessionId>
</ns1:credentials>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:reportPlaySeconds>
<ns1:id>track_id</ns1:id>
<ns1:seconds>0</ns1:seconds>
</ns1:reportPlaySeconds>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
And the response:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.sonos.com/Services/1.1">
<SOAP-ENV:Body>
<ns1:reportPlaySecondsResponse>
<ns1:reportPlaySecondsResult>
<ns1:interval>0</ns1:interval>
</ns1:reportPlaySecondsResult>
</ns1:reportPlaySecondsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
If I've understood the documentation correctly, returning <ns1:interval>0</ns1:interval> means reportPlaySeconds shouldn't be called again. I'm also using setPlayedSeconds to calculate more granular reporting, so additional reportPlaySeconds calls are unnecessary.
Any ideas?
Although the documentation does state you (the provider) can change the reporting interval by returning interval in the reportPlaySecondsResult, the feature is not enabled in firmware as of the latest release (Version 5.4, Build 29.5-91030, Released 13 July 2015).
As you have seen, the player continues to report on a fixed interval no matter what the value returned in reportPlaySecondsResult.
I've opened a ticket with the documentation team for an update.

Check if SSAS Cube is available i.e. processed

I am looking for a method to check if a cube is accessable i.e. it is processed and not broken.
Example: I got a working cube and i full process a shared dimension so that the cube gets broken.
Is there any mdx or xmla method of finding out what cubes are accessable / processed?
There is an XMLA command DISCOVER_XML_METADATA that can return the state of the database (processes/unprocessed) among other properties. I don't have the best handle on XMLA, so I don't know how to get just the part you need, but this query will return results in the form of XML, and you can parse it from there.
<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
<RequestType>DISCOVER_XML_METADATA</RequestType>
<Restrictions>
<RestrictionList>
<DatabaseID>AdventureWorks2012MD</DatabaseID>
</RestrictionList>
</Restrictions>
<Properties>
<PropertyList>
</PropertyList>
</Properties>
</Discover>
This requests gets the properties from the objects related to the SSAS database called AdventureWorks2012M. In the results you will see the following:
<Database>
<Name>AdventureWorks2012MD</Name>
<ID>AdventureWorks2012MD</ID>
<CreatedTimestamp>2013-08-01T01:41:10.926667</CreatedTimestamp>
<LastSchemaUpdate>2013-08-01T01:45:05.91</LastSchemaUpdate>
<Description />
<LastProcessed>2013-08-01T01:46:39.713333</LastProcessed>
<State>Processed</State>
<LastUpdate>2014-01-07T19:41:45.146667</LastUpdate>
<AggregationPrefix />
<Language>1033</Language>
<Collation>Latin1_General_CI_AS</Collation>
<Visible>true</Visible>
...
You care about <State>Processed</State>for that database. You can also get the state for each of the dimensions and measure groups as well by adding MeasureGroupID or DimensionID to the restrictions list.

Pentaho Design Studio - Blank report - warning Invalid chunk

I created a simple xaction with jdbc connection.The action was successful but am getting a blank report.
Resultset is not shown up.
enter code here
<?xml version="1.0" encoding="UTF-8"?>
<action-sequence>
<title>latest1</title>
<version>1</version>
<logging-level>TRACE</logging-level>
<documentation>
<author>reskin</author>
<description>Empty blank action sequence document</description>
<help/>
<result-type>none</result-type>
<icon/>
</documentation>
<inputs/>
<outputs>
<resultset type="result-set" is-output-parameter="false">
<destinations>
<response>resultset</response>
</destinations>
</resultset>
</outputs>
<resources/>
<actions>
<action-definition>
<component-name>SQLLookupRule</component-name>
<action-type>Relational</action-type>
<action-outputs>
<query-result type="result-set" mapping="resultset"/>
</action-outputs>
<component-definition>
<query><![CDATA[select * from cust_txn_list]]></query>
<live><![CDATA[true]]></live>
<driver><![CDATA[com.mysql.jdbc.Driver]]></driver>
<connection><![CDATA[jdbc:mysql://localhost:3306/hive_sample]]></connection>
<user-id><![CDATA[root]]></user-id>
<password><![CDATA[553450]]></password>
</component-definition>
</action-definition>
</actions>
</action-sequence>
I am getting the following warning message in BI Server log
Parameters: Invalid chunk '' ignored. is the warning
My problem is solved.The problem was due to the ouput paramater,"is output parameter checkbox should be checked always.