public long startRecording(final String channel, final int streamId, final SourceLocation sourceLocation) {
    """
	Start recording a channel and stream pairing.
	<p>
	Channels that include sessionId parameters are considered different than channels without sessionIds. If a
	publication matches both a sessionId specific channel recording and a non-sessionId specific recording, it will
	be recorded twice.
	
	@param channel        to be recorded.
	@param streamId       to be recorded.
	@param sourceLocation of the publication to be recorded.
	@return the subscriptionId, i.e. {@link Subscription#registrationId()}, of the recording.
    """
        lock.lock();
        try
        {
            ensureOpen();

            final long correlationId = aeron.nextCorrelationId();

            if (!archiveProxy.startRecording(channel, streamId, sourceLocation, correlationId, controlSessionId))
            {
                throw new ArchiveException("failed to send start recording request");
            }

            return pollForResponse(correlationId);
        }
        finally
        {
            lock.unlock();
        }
    }
public long startRecording(final String channel, final int streamId, final SourceLocation sourceLocation)
    {
        lock.lock();
        try
        {
            ensureOpen();

            final long correlationId = aeron.nextCorrelationId();

            if (!archiveProxy.startRecording(channel, streamId, sourceLocation, correlationId, controlSessionId))
            {
                throw new ArchiveException("failed to send start recording request");
            }

            return pollForResponse(correlationId);
        }
        finally
        {
            lock.unlock();
        }
    }
public long startRecording ( final String channel , final int streamId , final SourceLocation sourceLocation ) { lock . lock ( ) ; try { ensureOpen ( ) ; final long correlationId = aeron . nextCorrelationId ( ) ; if ( ! archiveProxy . startRecording ( channel , streamId , sourceLocation , correlationId , controlSessionId ) ) { throw new ArchiveException ( "failed to send start recording request" ) ; } return pollForResponse ( correlationId ) ; } finally { lock . unlock ( ) ; } }
Start recording a channel and stream pairing.
<p>
Channels that include sessionId parameters are considered different than channels without sessionIds. If a
publication matches both a sessionId specific channel recording and a non-sessionId specific recording, it will
be recorded twice.

@param channel        to be recorded.
@param streamId       to be recorded.
@param sourceLocation of the publication to be recorded.
@return the subscriptionId, i.e. {@link Subscription#registrationId()}, of the recording.
Start recording a channel and stream pairing . <p > Channels that include sessionId parameters are considered different than channels without sessionIds . If a publication matches both a sessionId specific channel recording and a non - sessionId specific recording it will be recorded twice .