Kaliko with Oracle

98 views
Skip to first unread message

al...@aspbrasil.net

unread,
Jan 30, 2018, 12:11:40 PM1/30/18
to KalikoCMS Developer Forum
Has anyone ever tried to install Kaliko with Oracle?

I've tried but its not working properly



Thats my conectionstring

<add name="KalikoCMS"
connectionString="data source=000.000.00.00:1521/XXXX.590453502.oraclecloud.internal;persist security info=True;
user id=sys;password=password;DBA Privilege=SYSDBA"

providerName="Oracle.ManagedDataAccess.Client" />



That's the error while i try to execute from Visual Studio for the first Time


Erro de Servidor no Aplicativo '/'.
ORA-01501: CREATE DATABASE falhou
ORA-01100: banco de dados já montado
Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: Oracle.ManagedDataAccess.Client.OracleException: ORA-01501: CREATE DATABASE falhou
ORA-01100: banco de dados já montado

Erro de Origem:

Exceção sem tratamento foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.

Rastreamento de Pilha:


[OracleException (0x80004005): ORA-01501: CREATE DATABASE falhou
ORA-01100: banco de dados já montado]
OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32& cursorId, Boolean bThrowArrayBindRelatedErrors, SqlStatementType sqlStatementType, Int32 arrayBindCount, OracleException& exceptionForArrayBindDML, Boolean& hasMoreRowsInDB, Boolean bFirstIterationDone) +647
OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(String commandText, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, Int32 longFetchSize, Int64 clientInitialLOBFS, OracleDependencyImpl orclDependencyImpl, Int64[]& scnFromExecution, OracleParameterCollection& bindByPositionParamColl, Boolean& bBindParamPresent, OracleException& exceptionForArrayBindDML, OracleConnection connection, OracleLogicalTransaction& oracleLogicalTransaction, Boolean isFromEF) +10988
Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery() +1036
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeUpdate(String sql) +133

[SQLException: ORA-01501: CREATE DATABASE falhou
ORA-01100: banco de dados já montado]
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeUpdate(String sql) +181
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.execute(String sql) +5
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlStatements(IEnumerable`1 statements, Connection con) +169

[OpenAccessException: SQL exception on 'CREATE DATABASE 144.22.77.216:1521/ESTACIO.590453502.oraclecloud.internal' : ORA-01501: CREATE DATABASE falhou
ORA-01100: banco de dados já montado]
OpenAccessRuntime.ExceptionWrapper.Throw() +7
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.throwBuildException(String str, Exception e) +49
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlStatements(IEnumerable`1 statements, Connection con) +218
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlScript(String script, Connection con, SqlDriver sqlDriver, Boolean noShredder) +118
OpenAccessRuntime.DataObjects.tools.ant.DatabaseCreationTask.createDatabase() +1092

[OpenAccessException: Telerik.OpenAccess.OpenAccessException: SQL exception on 'CREATE DATABASE 144.22.77.216:1521/ESTACIO.590453502.oraclecloud.internal' : ORA-01501: CREATE DATABASE falhou
ORA-01100: banco de dados já montado]
OpenAccessRuntime.ExceptionWrapper.Throw() +7
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.throwBuildException(String str, Exception e) +49
OpenAccessRuntime.DataObjects.tools.ant.DatabaseCreationTask.createDatabase() +1155
OpenAccessRuntime.DataObjects.tools.ant.DatabaseCreationTask.execute() +5
OpenAccessRuntime.OpenAccessSchemaAdapter.CreateDatabase(Boolean checkOnly) +296
OpenAccessRuntime.SchemaHandlerImpl.Telerik.OpenAccess.ISchemaHandler.CreateDatabase() +49
KalikoCMS.Data.DataContext.UpdateSchema() +77
KalikoCMS.Modules.InitModule.KeepDatabaseUpToDate() +55
KalikoCMS.Modules.InitModule.RunInitializingSteps() +25
KalikoCMS.Modules.InitModule.InitializeApplication() +432
KalikoCMS.Modules.InitModule.Init(HttpApplication context) +94
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +536
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

[HttpException (0x80004005): Telerik.OpenAccess.OpenAccessException: SQL exception on 'CREATE DATABASE 144.22.77.216:1521/ESTACIO.590453502.oraclecloud.internal' : ORA-01501: CREATE DATABASE falhou
ORA-01100: banco de dados já montado]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +10042604
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

Informações sobre a Versão: Microsoft .NET Framework Versão:4.0.30319; Versão do ASP.NET:4.7.2556.0

Fredrik Schultz

unread,
Jan 31, 2018, 2:56:21 PM1/31/18
to KalikoCMS Developer Forum
Hi,
I've downloaded Oracle in order to test to setup the project. Another developer messaged me a while ago mentioning the nvarchar type to be the root of the problem at database creation, unfortunately things have been a bit hectic, but I will look into it.

al...@aspbrasil.net

unread,
Feb 1, 2018, 10:12:37 AM2/1/18
to KalikoCMS Developer Forum
Hi, thanks

We've been trying to install Kaliko with oracle since last
friday, no luck.

Yesterday we started to debug from kaliko core to find a solution

Fredrik Schultz

unread,
Feb 4, 2018, 4:48:03 AM2/4/18
to KalikoCMS Developer Forum
Hi,
I've just uploaded a new pre-release package that fixes the datatype compatibility problem when using Oracle, you can find it here:

This release should work fully with Oracle (tested with driver https://www.nuget.org/packages/Oracle.ManagedDataAccess/12.2.1100).

Testing the solution I noticed that the data source specified in the connection string should be set to corresponding part in the tnsnames.ora-file:
<add name="KalikoCMS" connectionString="Password=xxx;Persist Security Info=True;User ID=xxx;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=xxx)))" providerName="Oracle.ManagedDataAccess.Client" />

Hope this will help you get the solution working properly.

ax.i...@gmail.com

unread,
Feb 5, 2018, 11:50:26 AM2/5/18
to KalikoCMS Developer Forum
Thanks For The Help

I'll Try To Install this


I forgot to tell before, I'm working with Oracle 11g

ax.i...@gmail.com

unread,
Feb 5, 2018, 12:41:32 PM2/5/18
to KalikoCMS Developer Forum
I've got this error


Erro de Servidor no Aplicativo '/'.
ORA-00972: identificador muito longo
Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: Oracle.ManagedDataAccess.Client.OracleException: ORA-00972: identificador muito longo

Erro de Origem:

Exceção sem tratamento foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.

Rastreamento de Pilha:


[OracleException (0x80004005): ORA-00972: identificador muito longo]
OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32& cursorId, Boolean bThrowArrayBindRelatedErrors, SqlStatementType sqlStatementType, Int32 arrayBindCount, OracleException& exceptionForArrayBindDML, Boolean& hasMoreRowsInDB, Boolean bFirstIterationDone) +647
OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(String commandText, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, Int32 longFetchSize, Int64 clientInitialLOBFS, OracleDependencyImpl orclDependencyImpl, Int64[]& scnFromExecution, OracleParameterCollection& bindByPositionParamColl, Boolean& bBindParamPresent, OracleException& exceptionForArrayBindDML, OracleConnection connection, OracleLogicalTransaction& oracleLogicalTransaction, Boolean isFromEF) +10988
Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery() +1036
OpenAccessRuntime.CommandWrapper.ExecuteNonQuery() +144
Telerik.OpenAccess.Runtime.Logging.LoggingDbCommand.ExecuteNonQuery() +139
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeUpdate(String sql) +130

[SQLException: ORA-00972: identificador muito longo]
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeUpdate(String sql) +178
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.execute(String sql) +5
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlStatements(IEnumerable`1 statements, Connection con) +169

[OpenAccessException: SQL exception on 'ALTER TABLE "SiteProperty" ADD CONSTRAINT "FK_SiteProperty_SitePropertyDefinition" FOREIGN KEY ("PropertyId") REFERENCES "SitePropertyDefinition"("PropertyId")' : ORA-00972: identificador muito longo]
OpenAccessRuntime.ExceptionWrapper.Throw() +7
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.throwBuildException(String str, Exception e) +28
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlStatements(IEnumerable`1 statements, Connection con) +218
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlScript(String script, Connection con, SqlDriver sqlDriver, Boolean noShredder) +118
OpenAccessRuntime.DataObjects.tools.ant.ExecuteScriptTask.runScript(String script) +106
OpenAccessRuntime.DataObjects.tools.ant.ExecuteScriptTask.execute() +294

[OpenAccessException: Telerik.OpenAccess.OpenAccessException: SQL exception on 'ALTER TABLE "SiteProperty" ADD CONSTRAINT "FK_SiteProperty_SitePropertyDefinition" FOREIGN KEY ("PropertyId") REFERENCES "SitePropertyDefinition"("PropertyId")' : ORA-00972: identificador muito longo]
OpenAccessRuntime.ExceptionWrapper.Throw() +7
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.throwBuildException(String str, Exception e) +28
OpenAccessRuntime.DataObjects.tools.ant.ExecuteScriptTask.execute() +410
OpenAccessRuntime.OpenAccessSchemaAdapter.ExecuteDDLScript(String ddl, Boolean force) +289
OpenAccessRuntime.SchemaHandlerImpl.Telerik.OpenAccess.ISchemaHandler.ForceExecuteDDLScript(String ddl) +53
KalikoCMS.Data.DataContext.UpdateSchema() +124
KalikoCMS.Modules.InitModule.KeepDatabaseUpToDate() +55
KalikoCMS.Modules.InitModule.RunInitializingSteps() +25
KalikoCMS.Modules.InitModule.InitializeApplication() +432
KalikoCMS.Modules.InitModule.Init(HttpApplication context) +94
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +536
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

[HttpException (0x80004005): Telerik.OpenAccess.OpenAccessException: SQL exception on 'ALTER TABLE "SiteProperty" ADD CONSTRAINT "FK_SiteProperty_SitePropertyDefinition" FOREIGN KEY ("PropertyId") REFERENCES "SitePropertyDefinition"("PropertyId")' : ORA-00972: identificador muito longo]

Fredrik Schultz

unread,
Feb 5, 2018, 2:25:42 PM2/5/18
to kali...@googlegroups.com
This is a bit of a strange error since the data component should be able to automatically limit identifiers for Oracle to 30 characters (reading from the debug message it's longer).

Could you verify that you have the following versions (or later) of the NuGet-packages?:

<package id="Telerik.DataAccess.Core" version="2016.2.822.1" targetFramework="net45" />
<package id="Oracle.ManagedDataAccess" version="12.2.1100" targetFramework="net452" />

I was running 12c, but if this problem persist I can downgrade version to help troubleshooting.

ax.i...@gmail.com

unread,
Feb 5, 2018, 5:32:42 PM2/5/18
to KalikoCMS Developer Forum
I have the same versions of both

al...@aspbrasil.net

unread,
Feb 5, 2018, 6:35:49 PM2/5/18
to KalikoCMS Developer Forum
The provider is Oracle.ManagedDataAccess.Client


My config

<connectionStrings>

<add name="KalikoCMS" connectionString="data source=xxx.xx.xx.xxx:1521/EXXXX.590453502.oraclecloud.internal;persist security info=True;user id=XXXXXXXXXX;password=XXXXX" providerName="Oracle.ManagedDataAccess.Client" />


</connectionStrings>


Fredrik Schultz

unread,
Feb 6, 2018, 1:21:59 AM2/6/18
to KalikoCMS Developer Forum
I'm downgrading to Oracle 11g to see if there's any difference when testing. Will get back to you when I got it up and running.

Since you get a connection to the database this is most likely not the problem, but could you test to change the data source to the responding configuration in the tnsnames.ora-file?:

al...@aspbrasil.net

unread,
Feb 6, 2018, 7:38:17 AM2/6/18
to KalikoCMS Developer Forum
Hi Fredrik

Thanks again


I've tried to make the connection that way, but it doesnt work, The application cant reach the db

al...@aspbrasil.net

unread,
Feb 6, 2018, 8:22:25 AM2/6/18
to KalikoCMS Developer Forum
Can you send me your web.config?

Fredrik Schultz

unread,
Feb 6, 2018, 12:33:55 PM2/6/18
to KalikoCMS Developer Forum
Sure thing, I've sent the file via mail.

al...@aspbrasil.net

unread,
Feb 6, 2018, 1:15:38 PM2/6/18
to KalikoCMS Developer Forum
I've tried your web.config with my connection string

Same error


Erro de Servidor no Aplicativo '/'.
ORA-00972: identificador muito longo
Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: Oracle.ManagedDataAccess.Client.OracleException: ORA-00972: identificador muito longo

Erro de Origem:

Exceção sem tratamento foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.

Rastreamento de Pilha:


[OracleException (0x80004005): ORA-00972: identificador muito longo]
OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32& cursorId, Boolean bThrowArrayBindRelatedErrors, SqlStatementType sqlStatementType, Int32 arrayBindCount, OracleException& exceptionForArrayBindDML, Boolean& hasMoreRowsInDB, Boolean bFirstIterationDone) +647
OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(String commandText, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, Int32 longFetchSize, Int64 clientInitialLOBFS, OracleDependencyImpl orclDependencyImpl, Int64[]& scnFromExecution, OracleParameterCollection& bindByPositionParamColl, Boolean& bBindParamPresent, OracleException& exceptionForArrayBindDML, OracleConnection connection, OracleLogicalTransaction& oracleLogicalTransaction, Boolean isFromEF) +10988
Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery() +1036
OpenAccessRuntime.CommandWrapper.ExecuteNonQuery() +145
Telerik.OpenAccess.Runtime.Logging.LoggingDbCommand.ExecuteNonQuery() +139
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeUpdate(String sql) +130

[SQLException: ORA-00972: identificador muito longo]
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeUpdate(String sql) +178
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.execute(String sql) +5
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlStatements(IEnumerable`1 statements, Connection con) +169

[OpenAccessException: SQL exception on 'ALTER TABLE "SiteProperty" ADD CONSTRAINT "FK_SiteProperty_SitePropertyDefinition" FOREIGN KEY ("PropertyId") REFERENCES "SitePropertyDefinition"("PropertyId")' : ORA-00972: identificador muito longo]
OpenAccessRuntime.ExceptionWrapper.Throw() +7
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.throwBuildException(String str, Exception e) +49
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlStatements(IEnumerable`1 statements, Connection con) +218
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlScript(String script, Connection con, SqlDriver sqlDriver, Boolean noShredder) +118
OpenAccessRuntime.DataObjects.tools.ant.ExecuteScriptTask.runScript(String script) +106
OpenAccessRuntime.DataObjects.tools.ant.ExecuteScriptTask.execute() +294

[OpenAccessException: Telerik.OpenAccess.OpenAccessException: SQL exception on 'ALTER TABLE "SiteProperty" ADD CONSTRAINT "FK_SiteProperty_SitePropertyDefinition" FOREIGN KEY ("PropertyId") REFERENCES "SitePropertyDefinition"("PropertyId")' : ORA-00972: identificador muito longo]
OpenAccessRuntime.ExceptionWrapper.Throw() +7
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.throwBuildException(String str, Exception e) +49
OpenAccessRuntime.DataObjects.tools.ant.ExecuteScriptTask.execute() +410
OpenAccessRuntime.OpenAccessSchemaAdapter.ExecuteDDLScript(String ddl, Boolean force) +289
OpenAccessRuntime.SchemaHandlerImpl.Telerik.OpenAccess.ISchemaHandler.ForceExecuteDDLScript(String ddl) +53
KalikoCMS.Data.DataContext.UpdateSchema() +124
KalikoCMS.Modules.InitModule.KeepDatabaseUpToDate() +55
KalikoCMS.Modules.InitModule.RunInitializingSteps() +25
KalikoCMS.Modules.InitModule.InitializeApplication() +432
KalikoCMS.Modules.InitModule.Init(HttpApplication context) +94
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +536
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

[HttpException (0x80004005): Telerik.OpenAccess.OpenAccessException: SQL exception on 'ALTER TABLE "SiteProperty" ADD CONSTRAINT "FK_SiteProperty_SitePropertyDefinition" FOREIGN KEY ("PropertyId") REFERENCES "SitePropertyDefinition"("PropertyId")' : ORA-00972: identificador muito longo]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +10042604
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

Fredrik Schultz

unread,
Feb 6, 2018, 4:57:32 PM2/6/18
to KalikoCMS Developer Forum
It's the Oracle version that cause the problem! Running Oracle 11g I got the same error as you did. 

I've captured the Oracle script for table creation as a workaround (see attachment). If you run this manually you should be able to initialize the CMS properly. (If you have the KalikoCMS.Identity-package be sure to remove it before running the site, it has the same problem and I will look into it as soon as possible.)

This is a problem in the Telerik Data Access component, why it handle 11g and 12c so different I don't know.
create_oracle_db.sql

ax.i...@gmail.com

unread,
Feb 6, 2018, 6:44:36 PM2/6/18
to KalikoCMS Developer Forum
Thanks

I run the script


But when I run the application in Visual Studio

This error happens

Erro de Servidor no Aplicativo '/'.
ORA-04081: o gatilho 'Trg_PgeInstance_PageInstanceId' já existe
Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: Oracle.ManagedDataAccess.Client.OracleException: ORA-04081: o gatilho 'Trg_PgeInstance_PageInstanceId' já existe

Erro de Origem:

Exceção sem tratamento foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.

Rastreamento de Pilha:


[OracleException (0x80004005): ORA-04081: o gatilho 'Trg_PgeInstance_PageInstanceId' já existe]
OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32& cursorId, Boolean bThrowArrayBindRelatedErrors, SqlStatementType sqlStatementType, Int32 arrayBindCount, OracleException& exceptionForArrayBindDML, Boolean& hasMoreRowsInDB, Boolean bFirstIterationDone) +647
OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(String commandText, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, Int32 longFetchSize, Int64 clientInitialLOBFS, OracleDependencyImpl orclDependencyImpl, Int64[]& scnFromExecution, OracleParameterCollection& bindByPositionParamColl, Boolean& bBindParamPresent, OracleException& exceptionForArrayBindDML, OracleConnection connection, OracleLogicalTransaction& oracleLogicalTransaction, Boolean isFromEF) +10988
Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery() +1036
OpenAccessRuntime.CommandWrapper.ExecuteNonQuery() +145
Telerik.OpenAccess.Runtime.Logging.LoggingDbCommand.ExecuteNonQuery() +139
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeUpdate(String sql) +130

[SQLException: ORA-04081: o gatilho 'Trg_PgeInstance_PageInstanceId' já existe]
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeUpdate(String sql) +178
Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.execute(String sql) +5
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlStatements(IEnumerable`1 statements, Connection con) +169

[OpenAccessException: SQL exception on 'CREATE TRIGGER "Trg_PgeInstance_PageInstanceId" BEFORE INSERT ON "PageInstance" FOR EACH ROW BEGIN SELECT "Sq_PageInstance_PageInstanceId".nextval INTO :NEW."PageInstanceId" FROM dual; END;' : ORA-04081: o gatilho 'Trg_PgeInstance_PageInstanceId' já existe]
OpenAccessRuntime.ExceptionWrapper.Throw() +7
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.throwBuildException(String str, Exception e) +49
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlStatements(IEnumerable`1 statements, Connection con) +218
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlScript(String script, Connection con, SqlDriver sqlDriver, Boolean noShredder) +118
OpenAccessRuntime.DataObjects.tools.ant.ExecuteScriptTask.runScript(String script) +106
OpenAccessRuntime.DataObjects.tools.ant.ExecuteScriptTask.execute() +294

[OpenAccessException: Telerik.OpenAccess.OpenAccessException: SQL exception on 'CREATE TRIGGER "Trg_PgeInstance_PageInstanceId" BEFORE INSERT ON "PageInstance" FOR EACH ROW BEGIN SELECT "Sq_PageInstance_PageInstanceId".nextval INTO :NEW."PageInstanceId" FROM dual; END;' : ORA-04081: o gatilho 'Trg_PgeInstance_PageInstanceId' já existe]
OpenAccessRuntime.ExceptionWrapper.Throw() +7
OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.throwBuildException(String str, Exception e) +49
OpenAccessRuntime.DataObjects.tools.ant.ExecuteScriptTask.execute() +410
OpenAccessRuntime.OpenAccessSchemaAdapter.ExecuteDDLScript(String ddl, Boolean force) +289
OpenAccessRuntime.SchemaHandlerImpl.Telerik.OpenAccess.ISchemaHandler.ForceExecuteDDLScript(String ddl) +53
KalikoCMS.Data.DataContext.UpdateSchema() +124
KalikoCMS.Modules.InitModule.KeepDatabaseUpToDate() +55
KalikoCMS.Modules.InitModule.RunInitializingSteps() +25
KalikoCMS.Modules.InitModule.InitializeApplication() +432
KalikoCMS.Modules.InitModule.Init(HttpApplication context) +94
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +536
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

[HttpException (0x80004005): Telerik.OpenAccess.OpenAccessException: SQL exception on 'CREATE TRIGGER "Trg_PgeInstance_PageInstanceId" BEFORE INSERT ON "PageInstance" FOR EACH ROW BEGIN SELECT "Sq_PageInstance_PageInstanceId".nextval INTO :NEW."PageInstanceId" FROM dual; END;' : ORA-04081: o gatilho 'Trg_PgeInstance_PageInstanceId' já existe]

ax.i...@gmail.com

unread,
Feb 6, 2018, 6:52:38 PM2/6/18
to KalikoCMS Developer Forum
There was a problem with the triggers, a ; in the end

i took then off and compiled

nows thats the eror


Erro de Servidor no Aplicativo '/'.
Type.GetType(KalikoCMS.Search.KalikoSearchProvider, KalikoCMS.Search) returned null.
Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: System.NullReferenceException: Type.GetType(KalikoCMS.Search.KalikoSearchProvider, KalikoCMS.Search) returned null.

Erro de Origem:

Exceção sem tratamento foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.

Rastreamento de Pilha:


[NullReferenceException: Type.GetType(KalikoCMS.Search.KalikoSearchProvider, KalikoCMS.Search) returned null.]
KalikoCMS.Utils.Throw(String message, Severity severity) +174
KalikoCMS.Search.SearchManager.LoadSearchProviderFromConfig() +134
KalikoCMS.Search.SearchManager.Startup() +5
KalikoCMS.Modules.InitModule.ExecutePostStartupSequence(List`1 sequences) +255
KalikoCMS.Modules.InitModule.RunInitializingSteps() +74
KalikoCMS.Modules.InitModule.InitializeApplication() +432
KalikoCMS.Modules.InitModule.Init(HttpApplication context) +94
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +536
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

[HttpException (0x80004005): Type.GetType(KalikoCMS.Search.KalikoSearchProvider, KalikoCMS.Search) returned null.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +10042604
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

ax.i...@gmail.com

unread,
Feb 6, 2018, 6:57:58 PM2/6/18
to KalikoCMS Developer Forum
Should I install nuget Kaliko.CMS.Engine ? or Kaliko.Logger ?

I've only installed these

https://www.nuget.org/packages/KalikoCMS.Core/1.2.4-beta3

https://www.nuget.org/packages/Oracle.ManagedDataAccess/12.2.1100

Fredrik Schultz

unread,
Feb 7, 2018, 1:23:51 AM2/7/18
to KalikoCMS Developer Forum
The null reference is caused by defining a search provider in the site setting element of the web.config. Since Kaliko CMS is modular the core package doesn't include a search provider but it could optional be added. If you copied my siteSettings you got a reference to the Lucene-based search provider and you can solve it in two ways:

If you don't need search:
- Remove searchProvider="KalikoCMS.Search.KalikoSearchProvider, KalikoCMS.Search" from the siteSettings element in the web.config

If you want search:

The KalikoCMS.Engine package is a subset of KalikoCMS.Core used for third party component development and should be ignored in a standard implementation.

But you will need to add a provider for ASP.NET MVC:

..or WebForms:

..depending on whether you want to use MVC or WebForms in your project.

al...@aspbrasil.net

unread,
Feb 7, 2018, 6:34:02 AM2/7/18
to KalikoCMS Developer Forum
Hi Fredrik

It Worked

I'm on admin page, but theres no users. Do you have the sript to create users? The project doesn't have the setupadmin page

Fredrik Schultz

unread,
Feb 7, 2018, 11:55:25 AM2/7/18
to KalikoCMS Developer Forum
Great! We're getting closer.

The authorization part is also modular in the CMS, if you want the adapted ASP.NET Identity provider including the SetupAdmin.aspx script you can install:

HOWEVER the underlying component suffers the same Telerik Data Access bug in regards to long identifiers, so I'll need to manually fix a script for you before you can install and run that package. Hope to have it ready for you tonight.

al...@aspbrasil.net

unread,
Feb 7, 2018, 12:10:59 PM2/7/18
to KalikoCMS Developer Forum
Thanks again Fredrik

Any help you need with kaliko, you can ask me

I foud out today that if you upload an pg file with tranparency, the cached image is created without tranparency, but with a black background instead

Fredrik Schultz

unread,
Feb 7, 2018, 4:46:00 PM2/7/18
to KalikoCMS Developer Forum
I'm attaching the SQL script for setting up the Asp.Net Identity tables needed for https://www.nuget.org/packages/KalikoCMS.Identity/

Once the tables are in place you could add the KalikoCMS.Identity package and create your admin account using SetupAdmin.aspx in the root.

I think it would be a good thing to create a NuGet package aimed for Oracle (as there are today for SQLite and SQL Server) in order to ease installation of the CMS. I would really appreciate all help I can get with feedback on how the script worked and the best way to execute them (since I'm not to familiar with the Oracle tools), thanks!
create_identity_oracle.sql

al...@aspbrasil.net

unread,
Feb 8, 2018, 10:28:05 AM2/8/18
to KalikoCMS Developer Forum
HI Fredrik

Thanks again and again

Its my first time with oracle too, I'm used to MSSQL. I can say with all my heart "I hate Oracle", too much time wasted for something that I don't even need to worry when I'm om MSSQL, but oracle was a client need

About the first script, I ran itin pieces, a table at a time

The triggers gave some trouble, they were created but with error, there was an extra ; at the end of the script. I erase it in the trigger and ran it, then everything goes smooth


Create a nuget package for every DB will be a great thing, It will help a lot

I'm still learnning about Kaliko yet, I'm used to Umbraco (ten years already), so things are very different, I'm having difficult to get field values from nodes below my homepage. I could only list the types, but not the name or even the id

Fredrik Schultz

unread,
Feb 8, 2018, 11:58:37 AM2/8/18
to KalikoCMS Developer Forum
Thanks for the feedback! As you say getting into Oracle has really been a challenge compared to MSSQL, I even had to struggle to uninstall it while downgrading.

PageFactory keeps a lot of functions to iterate through the structure, it all depends a little of the requirements. Some of the functions (like GetChildrenForPageOfPageType) returns a typed collection that you can access as instances of your page model, other functions uses the more anonymous CmsPage which is the base page for all pages. On a CmsPage you can access common fields such as page name etc. but for properties you need to go through the Property collection. One example on getting all child pages and loop through and getting the property Headline:

    var children = PageFactory.GetChildrenForPage(currentPage.PageId);

    foreach (CmsPage child in children) {
       bool hasProperty;
       var property = child.Property.GetPropertyValue("Headline", out hasProperty);

       if (hasProperty) {
          var value = ((StringProperty)property).Value;
          // ...
       }
    }

Notice that the type need to be specified when iterating through the page collection. This is also true for typed queries (but instead of CmsPage the requested page model is used).

Hope that helps! Otherwise get back to me with a little more information about the problem and I'll try help you out.

al...@aspbrasil.net

unread,
Feb 8, 2018, 12:08:40 PM2/8/18
to KalikoCMS Developer Forum
Hi Fredrik

I copied your code to my index





CS0103: O nome 'currentPage' não existe no contexto atual


@{ var children = PageFactory.GetChildrenForPage(currentPage.PageId);
Linha 39:
Linha 40: }

Fredrik Schultz

unread,
Feb 8, 2018, 2:40:18 PM2/8/18
to KalikoCMS Developer Forum
Apologize for omitting the context, the sample code was for a controller (where currentPage is passed as a parameter), such as:

    public class StartPageController : PageController<StartPage> {
        public override ActionResult Index(StartPage currentPage) {

            // sample code here

        }
    }

If you haven't got a page to pass to the GetChildrenForPage function you could use a pointer to the start page, like:

  var children = PageFactory.GetChildrenForPage(KalikoCMS.Configuration.SiteSettings.Instance.StartPageId);

  // ...


al...@aspbrasil.net

unread,
Feb 19, 2018, 12:18:54 PM2/19/18
to KalikoCMS Developer Forum
Hi Fredrik

I runned the script, but the trigger gave me an error

SCript:
CREATE TRIGGER "Trg_AspNetVersion_Id" BEFORE INSERT ON "AspNetVersion" FOR EACH ROW BEGIN SELECT "Seq_AspNetVersion_Id".nextval INTO :NEW."Id" FROM dual; END;

Error:
ORA-01400: não é possível inserir NULL em ("ESTACIOKALIKO"."PageType"."DefaultChildSortDirection")
ORA-06512: em line 3


I deleted this trigger and runned the apliccation

The user was created, but when I try to log

http://localhost:4258/Admin/


The login page is not shown and I enter admin with anonymous, without filling my user and password, just like before


Any ideas?

Fredrik Schultz

unread,
Feb 20, 2018, 4:05:49 PM2/20/18
to KalikoCMS Developer Forum
Have you installed https://www.nuget.org/packages/KalikoCMS.Identity/ ? When installed it should wire the login page to protect the admin path, so it sounds like it's missing or that the installation somehow has gone wrong.

al...@aspbrasil.net

unread,
Feb 20, 2018, 4:14:22 PM2/20/18
to KalikoCMS Developer Forum
Hi Fredrik

I've figure it out. I forgot to change the web.config

<authorization>
<allow roles="WebAdmin" />
<deny users="*" />
</authorization>

It was commented

But as I've said before, I deleted the trigger part

CREATE TRIGGER "Trg_AspNetVersion_Id" BEFORE INSERT ON "AspNetVersion" FOR EACH ROW BEGIN SELECT "Seq_AspNetVersion_Id".nextval INTO :NEW."Id" FROM dual; END;


I've let the application create it and everything went fine

The site is almost ready

Thanks Fredrik, without your help it wouldn't be possible


Fredrik Schultz

unread,
Feb 22, 2018, 11:58:00 AM2/22/18
to KalikoCMS Developer Forum
Thanks for the feedback! Glad you got it working.
Reply all
Reply to author
Forward
0 new messages