code: void keypointStarting() throws InternalLogException
      {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "keypointStarting", this);
  
          // Check that the file is actually open
          if (_activeFile == null)
          {
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "keypointStarting", "InternalLogException");
              throw new InternalLogException(null);
          }
  
          // Choose the 'other' file to be the target for the keypoint operation.
          if (_activeFile == _file1)
          {
              _activeFile = _file2;
              _inactiveFile = _file1;
          }
          else
          {
              _activeFile = _file1;
              _inactiveFile = _file2;
          }
  
          if (tc.isDebugEnabled())
              Tr.debug(tc, "Keypoint processing is switching to log file " + _activeFile.fileName());
  
          // _activeFile is in INACTIVE state, other file is in ACTIVE state
          try
          {
              _activeFile.keypointStarting(_recordSequenceNumber);
          } catch (InternalLogException exc)
          {
              FFDCFilter.processException(exc, "com.ibm.ws.recoverylog.spi.LogHandle.keypointStarting", "690", this);
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "keypointStarting", exc);
              throw exc;
          } catch (Throwable exc)
          {
              FFDCFilter.processException(exc, "com.ibm.ws.recoverylog.spi.LogHandle.keypointStarting", "696", this);
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "keypointStarting", "InternalLogException");
              throw new InternalLogException(exc);
          }
  
          // Now determine how many bytes are currently available in the new target log file.
          _physicalFreeBytes = _activeFile.freeBytes();
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "keypointStarting");
      }
docs: /*
  A package access utility method to prepare the underlying recovery log file
  for a keypoint operation. The active file is switched and a keypoint header
  is then written to it.
  
  @exception InternalLogException An unexpected error has occured.