Showing posts with label Deployment. Show all posts
Showing posts with label Deployment. Show all posts

Saturday, 28 October 2017

Endeca | Display Deployment Template Version

Sometimes you need to find out version of the deployment template (EAC Development Toolkit)

To show the version of deployment template.
1. Navigate to control directory of your application.
2. Invoke runcommand with --version flag.
Deployment Template Version
Deployment Template Version

Wednesday, 7 December 2016

ATG 11.2 BCC Full Deployment ConcurrentUpdateException

While running full deployment on ATG 11.2 first time it failed due to below exception.

============================================================================
2016-12-06 19:25:53,345 ERROR [STDERR] (RepositoryWorkerThread-1(Add-Update Phase)) atg.repository.ConcurrentUpdateException: no rows updated oldVersion=36 for item=deploymentProgress:1100003 in GSATransaction=atg.adapter.gsa.GSATransaction@1890638 thread=RepositoryWorkerThread-1(Add-Update Phase) transaction=TransactionImple < ac, BasicAction: aaf04af:134f:4e650790:b4cf status: ActionStatus.RUNNING >
============================================================================

Solution : Run full deployment with DeploymentManager.maxThreads=1 configuration.

Step 1 : Open the dyn/admin of BCC instance.
Step 2 : Open DeploymentManager component.
Step 3 : Update maxThreads property to 1.
Step 4 : Run full deployment again.

Friday, 24 June 2016

Resolved | FATAL : Multiple root installs found

While deploying Discover electronics application [CAS based] using deployment template.

You may encounter below error.

FATAL : Multiple root installs found. Only one installer config file may have the update attribute unspecified or set to false.

Solution : You should enter N for the Install base deployment question.

Install base deployment? [Y/N] : N

Thursday, 10 March 2016

Update Configuration For Already Provisioned Endeca Application

Follow below steps to push/update endeca application configuration changes to the EAC.

1. Navigate to config/script directory of endeca application.
2. Update component definition in respective xml file. For example here we are going to update authoring dgraph port from 15002 to 15005 in AuthoringDgraphCluster.xml.

AuthoringDgraphCluster.xml

Authoring Dgraph [EAC Admin console snapshot].

Authoring Dgraph Before Update

3.  Navigate to control directory of your application.
4.  Execute runcommand script with --update-definition flag. Below is the command output for given example.
=========================================================================
C:\Endeca\apps\MyStore\control>runcommand.bat --update-definition
[03.10.16 23:06:03] INFO: Checking definition from AppConfig.xml against existing EAC provisioning.
[03.10.16 23:06:04] INFO: Updating definitions for dgraphs in restart group 'A'.
[03.10.16 23:06:05] INFO: Updating definition for component 'AuthoringDgraph'.
[03.10.16 23:06:06] INFO: Updating provisioning for component 'DailyReportGenerator'.
[03.10.16 23:06:07] INFO: Updating definition for component 'DailyReportGenerator'.
[03.10.16 23:06:07] INFO: Definition updated.

=========================================================================

5.  Verify your changes.

Authoring Dgraph After Update


Friday, 23 October 2015

Resolved | atg.repository.RepositoryException: createItem() was called with an existing ID : 'Prod200013' for type 'product'. Use getItemForUpdate() instead

While importing product data sheet into BCC got RepositoryException.Below is the stack trace of error.

---    atg.repository.RepositoryException: createItem() was called with an existing ID : 'Prod200013' for type 'product'. Use getItemForUpdate() instead.
at atg.adapter.version.VersionRepository.createItem(VersionRepository.java:1907)
at atg.adapter.version.VersionRepository.createItem(VersionRepository.java:1152)
at atg.remote.assetmanager.editor.service.RepositoryAssetServiceImpl.copyItemWithNewId(RepositoryAssetServiceImpl.java:754)
at atg.remote.assetmanager.editor.service.RepositoryAssetServiceImpl.doAddAsset(RepositoryAssetServiceImpl.java:517)
at atg.remote.assetmanager.editor.service.AssetServiceImpl.addAsset(AssetServiceImpl.java:379)
at atg.remote.assetmanager.transfer.service.ImportEngine.importSingleAsset(ImportEngine.java:421)
at atg.remote.assetmanager.transfer.service.ImportEngine.importAssets(ImportEngine.java:247)
at atg.remote.assetmanager.transfer.service.TransferService.performImport(TransferService.java:270)
at sun.reflect.GeneratedMethodAccessor647.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:421)
at atg.flex.messaging.services.TransactionalJavaAdapter.invoke(TransactionalJavaAdapter.java:127)
at flex.messaging.services.RemotingService.serviceMessage(RemotingService.java:183)
at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)
at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884)
at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:121)
at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:146)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:278)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:322)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at atg.servlet.pipeline.TailPipelineServlet.service(TailPipelineServlet.java:161)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.pipeline.DispatcherPipelineServletImpl.service(DispatcherPipelineServletImpl.java:253)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.http.CookieBufferServlet.service(CookieBufferServlet.java:97)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.userprofiling.ExpiredPasswordServlet.service(ExpiredPasswordServlet.java:356)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.pipeline.MimeTyperPipelineServlet.service(MimeTyperPipelineServlet.java:206)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.droplet.DropletEventServlet.service(DropletEventServlet.java:609)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.epub.servlet.LocaleServlet.service(LocaleServlet.java:63)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.epub.servlet.ProjectServlet.service(ProjectServlet.java:87)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.epub.servlet.PublishingSecurityServlet.service(PublishingSecurityServlet.java:58)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.commerce.order.CommerceCommandServlet.service(CommerceCommandServlet.java:128)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.commerce.promotion.PromotionServlet.service(PromotionServlet.java:191)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.userprofiling.AccessControlServlet.service(AccessControlServlet.java:655)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.sessionsaver.SessionSaverServlet.service(SessionSaverServlet.java:2425)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.userprofiling.PageEventTriggerPipelineServlet.service(PageEventTriggerPipelineServlet.java:169)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.multisite.SiteSessionEventTriggerPipelineServlet.service(SiteSessionEventTriggerPipelineServlet.java:139)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.userprofiling.SessionEventTrigger.service(SessionEventTrigger.java:490)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.userprofiling.ProfilePropertyServlet.service(ProfilePropertyServlet.java:208)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.userprofiling.ProfileRequestServlet.service(ProfileRequestServlet.java:437)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.pipeline.CachePreventionServlet.service(CachePreventionServlet.java:119)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.pipeline.DynamoPipelineServlet.service(DynamoPipelineServlet.java:469)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.pipeline.URLArgumentPipelineServlet.service(URLArgumentPipelineServlet.java:280)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.pipeline.PathAuthenticationPipelineServlet.service(PathAuthenticationPipelineServlet.java:370)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.userprofiling.sso.PassportServlet.service(PassportServlet.java:554)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.security.ThreadUserBinderServlet.service(ThreadUserBinderServlet.java:91)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.dtm.TransactionPipelineServlet.service(TransactionPipelineServlet.java:212)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.pipeline.SecurityServlet.service(SecurityServlet.java:191)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.multisite.SiteContextPipelineServlet.service(SiteContextPipelineServlet.java:303)
at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
at atg.servlet.pipeline.HeadPipelineServlet.passRequest(HeadPipelineServlet.java:1169)
at atg.servlet.pipeline.HeadPipelineServlet.service(HeadPipelineServlet.java:855)
at atg.servlet.pipeline.PipelineableServletImpl.service(PipelineableServletImpl.java:250)
at atg.filter.dspjsp.PageFilter.innerDoFilter(PageFilter.java:287)
at atg.filter.dspjsp.PageFilter.doFilter(PageFilter.java:150)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
 

Root Cause : There were two products in the import data file with same id.

Solution : Remove duplicate ids from import file. Correct your data.

Saturday, 15 August 2015

BCC | Revert Asset to previous version (one of the older version from history)

As we know that BCC maintains the assets version. For newly created assets it assigns the version 1. Each time you modify the assets. It increments version by 1. The highest version number of that assets is the one which is deployed on production server. Sometime we need to revert assets to older version. In the other words we need to deploy some particular version of the asset from asset history. This is one of the benefits of assets versioning.

Here are the steps to deploy assets from history

Create content administration project in BCC.




Add asset to the project.



Click on  asset.
On Asset page click on History Tab.
On history tab click on the version you want to revert.




Scroll down on this page then click on revert asset to this version button.



Then deploy the project.
 

Tuesday, 31 March 2015

Create And Provision Endeca Application with the Deployment Template


Here are the steps to create an Endeca application from scratch and provision it using deployment template.

Application Creation 
 
      1. Open command line and change directory to ..\...\ToolsAndFrameworks\3.1.2  
          \deployment_template\bin and invoke deploy script. 

           For ex. C:\Endeca\ToolsAndFrameworks\3.1.2\deployment_template\bin\deply.bat
 
      2. Provide configuration parameter/values as script prompts you. First of all it will confirm
          IAP version. Then it will prompt following information.
  • Application Name.
  • Application Deployment directory.
  • EAC port.
  • Workbench port.
  • Live dgraph port.
  • Authoring Dgraph port.
  • Log Server port.
Screen  Captures for application creation.

For port values you can use any available port on your machine, or use default one.At the end you will get message that appplication deployed successfully.

Now application creation is done. It is time to provision it. Once application provisioned it will be available for configuration in Endeca Workbench.

To provision an application.

Go to \control directory of your application you created earlier (above steps).
Invoke initialize_services.bat or initialize_services.sh script. This script won't prompt for any values.

Here is the screen capture of application provisioning.
 
 

Thursday, 2 October 2014

Indexing As Part of a Deployment

You can configure your environment so that when you run a deployment in Content Administration, indexing is automatically started after the deployment is finished. To make this automatic triggering occur, add the following three components and their configuration to the localconfig layer for your Content Administration server.

  1. /atg/commerce/endeca/index/CategoryToDimensionOutputConfig
      Specify the following property for this component.

      targetName=Production

     2.  /atg/commerce/search/ProductCatalogOutputConfig

      Specify the following property for this component.

      targetName=Production

   3.   /atg/search/SynchronizationInvoker

      Specify the following properties for this component.

      host=atg-production-server-host
      rmi=8860