Pages stuck in publish-pending status

All wcm content pages are stuck in a publish-pending status.  ASI Tech Support seems to have run out of ideas for how to fix this problem.  I'm wondering if the client did something to cause this problem since we were able to publish just fine until a couple of weeks ago.  Now whenever we publish, the changes don't show up on the website, obviously because of the publish-pending problem.  Restarting the ASI Publishing service does not resolve the issue.  We have more than one instance of iMIS, but each one has its own port number (searchRemoting.confg and PublishService.exe.config), so that potential problem has been ruled out. We previously had some internal DNS problems, so I changed all the servername and/or domain name references to IP addresses within the config files.  At least one other consultant has looked at this problem, but so far the solution remains elusive.  Any suggestions?

-David

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Some technical specs

iMIS version = 15.2.1
App Server = Windows 2008
SQL Server = SQL 2008 R2
Environment = 1 App / Web server and 1 SQL Server, both on same local network

Some things to check

Here are some things to look for in your install...

1) Verify that your publishing server is running and can be stopped and started. Check your error log and see if the error message is meaningful.

2) Under Content Manager - Maintenance - Publishing servers - Select  your publishing service and verify that the paths to your Net and IndexServiceProtected are correct. (Note: if you need to change them restart the publishing service) - also note your publish server code.

3) On the web server under /Net/Bin/ open publishserver.exe.config file and verify that the publish server code in this file matches what you noted in step #1.

4) In the config file verify that the iMISWebServerURL value is correct (default uses server name - server names can change or aliases can be dropped) and also verify the imis datasource connection is accurate.

If you have multiple instances...

5) Each of your installs must use a different TCP port in your config file - in your version the multi-instance utility should update this value. IF you see 2 instances sharing the same port you will need to change one of them.

If you have multiple installs pointing to the same DB....

6) IF you have multiple installs AND you have multiple publishing services, be sure that the publish server code in the different installs match the correct value in your setup. Consider removing one if you are only publishing content to one location.

These are the typical things that can break. Hope this helps.

Joe John

John Consulting

 

 

Tried these but problem continues

Joe,
Thanks very much for the tips.  Most of these I had tried already.  However, I found an error in the event log which I have not seen before, and may provide the solution.  It says, "The ASI Site encountered an error trying to reach the website at http://myclientswebsite: The operation has timed out."  The source is ASIPublishing and the EventID is 0.  Any ideas on how to fix it.  All other suggestions you mentioned found no problems.

-David

 

Can you open:

Can you open: http://myclientswebsite in a browser from inside the application server?

David, make sure that URL

David, make sure that URL that you see in the error message is accessible directly on the server. It could be that the URL being used is an external URL that isn't accessible from within your server.

Let me know if that works or not.

-James

John / James: The url is

John / James:
The url is accessible from the server.  I remember changing the config file to point to an IP address rather than the server name.  So the error message is barking at http://192.168.10.24/imis_instance.  However, when you enter that url into a browser on the iMIS App / Web server, the iMIS Web View appears.  Do you think I should change it back to the server name in the config file?

-David

Another event log error

Here's another event log error that might shed some light on the problem and lead to a solution.

 

Log Name:      Application
Source:        Publish
Date:          7/6/2012 9:33:41 AM
Event ID:      0
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      IMISSERVER (name changed to protect client)
Description:
Service cannot be started. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.IOException: The process cannot access the file 'C:\Program Files (x86)\ASI\iMIS15\Net\bin\iMIS\AtomControls\MobileTCTAtomPanel.ascx' because it is being used by another process.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode)
   at Asi.AtomCompiler.AtomControlFile2.CreateFile(String ascxControlFilePath, String code)
   at Asi.AtomCompiler.AtomCompiler2.CompileAtomControl2(Boolean...
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Publish" />
    <EventID Qualifiers="0">0</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2012-07-06T14:33:41.000000000Z" />
    <EventRecordID>47451</EventRecordID>
    <Channel>Application</Channel>
    <Computer>IMISSERVER</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Service cannot be started. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---&gt; System.IO.IOException: The process cannot access the file 'C:\Program Files (x86)\ASI\iMIS15\Net\bin\iMIS\AtomControls\MobileTCTAtomPanel.ascx' because it is being used by another process.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode)
   at Asi.AtomCompiler.AtomControlFile2.CreateFile(String ascxControlFilePath, String code)
   at Asi.AtomCompiler.AtomCompiler2.CompileAtomControl2(Boolean...</Data>
  </EventData>
</Event>

Problem Solved!

The problem has been resolved.  It was occurring because the Publishing Server record was pointing to the wrong folder (..\asi\imis15\net\bin).  Instead of pointing to the bin folder it should have been pointing to the net folder, just one level up.  The reason is that iMIS monitors changes to the bin folder very frequently, (I think it's something like every 10 seconds) and rebuilds the website whenever changes occur.  Well, if the publishing takes place in that folder, you can imagine how often the rebuilding of the website will occur and how slow it will be.  By moving up one level the publish pending status on the pages went away as they finally published and the website loaded in less than 2 seconds.  Joe you mentioned in one of your steps to verify that the path to the Net was correct, and may have had this problem in mind with your comment.  The path was indeed correct, but I failed to notice that it was going to the bin folder, which is a no-no.  A special thanks goes to Isaac Oliveras of Association Technology Solutions for figuring this one out.
  
-David

ASI Tech Support provided

ASI Tech Support provided some additional tips that are worth sharing here.  Combined with Joe's comments and the solution to my problem, others will have a lot of troubleshooting tips at their disposal whenever they face this problem.

 

Search Checklist:

* PublishService.exe.config has the correct database name and ImisWebServerUrl.

* The web.config has the correct iMIS catalog name.

* The port number given in PublishService.exe.config agrees with the port number given in SearchRemoting.config.

* The directory in the Index Server catalog points to the same folder as is listed in the "Local Protected Path" value for the publishing server's entry in Content Management > Maintenance > Publishing servers, and the Publish Server Code listed on that same page agrees with the PublishServerCode entry in PublishService.exe.config. By default, this directory is IndexServiceProtected and is located under C:\Program Files\ASI\iMIS15.

* Right click the IndexServiceProtected directory and choose Properties > Advanced > enable the checkbox “For fast searching, allow Indexing Service to index this folder”.

* IMIS version and patch level should be 15.1.1.3632 or later (search issues were fixed in 15.1.1.3632).

* Perform a Full Rescan of the iMIS catalog. Manage Computer > Services and Applications > Indexing Service > Directories > right click the IndexServiceProtected directory and choose Full Rescan.

* For WCM sites, you may need to regenerate all content to make sure the search metadata gets published to the catalog (select the root @ folder, click Publish, select Regenerate existing content and make sure Publish children is checked, and hit OK).

* For WCM, look under the Content Properties page for your top level content folder for this WCM site for the Default Website (for search) option. Make sure you have it set to your WCM site.

* If none of the above correct the issue, then delete the "catalog.wci" folder (hidden) located in the index server catalog's configured location, and restart the service.

 

Here's another one I found:  Make sure the IP address in the Publishing Server record is correct.  If it's wrong, the Publishing Service won't start.