[ 
https://issues.apache.org/jira/browse/AMQ-5018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13890504#comment-13890504
 ] 

Oliver Holzmann commented on AMQ-5018:
--------------------------------------

I solved this issue by ensuring that the system property is removed during 
shutdown:

{code}
public class CustomFileLocker extends SharedFileLocker {

  private String vmLockKey;

  @Override
  public void doStart() throws Exception {
    super.doStart();
    vmLockKey = LockFile.class.getName() + ".lock."
        + new File(directory, "lock").getCanonicalPath();
  }

  @Override
  public void doStop(ServiceStopper stopper) throws Exception {
    try {
      super.doStop(stopper);
    } finally {
      System.getProperties().remove(vmLockKey);
    }
  }
{code}

> LockFile unlock method not reliable in case of network issues
> -------------------------------------------------------------
>
>                 Key: AMQ-5018
>                 URL: https://issues.apache.org/jira/browse/AMQ-5018
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.9.0
>         Environment: MS Windows Server 2003 R2 SP2
>            Reporter: Oliver Holzmann
>
> We run ActiveMQ cluster with kahaDB persistence. Persistence store is located 
> on a shared network folder. 
> In case of a network glitch we have "java.io.IOException: The specified 
> network name is no longer available" and the broker performs a restart. 
> During shutdown the SharedFileLocker doStop method triggers LockFile to 
> unlock. But due to the io error accessing the lockfile the system property 
> created from "getVmLockKey()" could not be removed. 
> On restart the still set system property leads to this exception: "File ... 
> could not be locked as lock is already held for this jvm"  and the broker 
> keeps inactive until restarting the windows service.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to