anchor.diff:  [source,java]
   ----
   eceive(jdbcServer)
  -        .message(JdbcMessage.startTransaction());<1>
  -
  -receive(jdbcServer)
  -        .message(JdbcMessage.execute("@startsWith('INSERT INTO todo_entries (id, title, description, done) VALUES (?, ?, ?, ?)')@"));
  +    .message(JdbcMessage.startTransaction());<1>
  +
  +receive(jdbcServer)
  +    .message(JdbcMessage.execute("@startsWith('INSERT INTO todo_entries (id, title, description, done) VALUES (?, ?, ?, ?)')@"));
   
   send(jdbcServer)
  -        .message(JdbcMessage.result().exception("Could not execute something"));
  -
  -receive(jdbcServer)
  -        .message(JdbcMessage.rollbackTransaction());<2>
  -----
  -<1> Verify, that the Transaction has been started.
  +    .message(JdbcMessage.result().exception("Could not execute something"));
  +
  +receive(jdbcServer)
  +    .message(JdbcMessage.rollbackTransaction());<2>
  +----
  +<1> Verify, that the transaction has been started.
   <2> Verify, that a rollback occurred after the database exception has been send.
   
   [[jdbc-server-prepared-statements]]
  
positive.code: [source,java]
  ----
  receive(jdbcServer)
          .message(JdbcMessage.startTransaction());<1>
  
  
  receive(jdbcServer)
          .message(JdbcMessage.execute("@startsWith('INSERT INTO todo_entries (id, title, description, done) VALUES (?, ?, ?, ?)')@"));
  
  send(jdbcServer)
          .message(JdbcMessage.result().rowsUpdated(1));
  
  receive(jdbcServer)
          .message(JdbcMessage.commitTransaction());<2>
  ----
  <1> Verify, that the Transaction has been started.
  <2> Verify, that the modification of the database has been committed.
  
  It is also possible to simulate an erroneous modification including the verification of a rollback.
  
negative.code: [source,java]
  ----
  receive(jdbcServer)
      .message(JdbcMessage.createCallableStatement("{CALL limitedToDoList(?)}"));<1>
  
  receive(jdbcServer)
      .message(JdbcMessage.execute("{CALL limitedToDoList(?)} - (1)"));<2>
  
  send(jdbcServer)
      .messageType(MessageType.XML)
      .message(JdbcMessage.result().dataSet("" +
              "<dataset>" +
                  "<row>" +
                      "<id>1</id>"+
                      "<title>sample</title>"+
                      "<description>A sample todo</description>" +
                      "<done>false</done>" +
                   "</row>" +
                  "</dataset>"));
  
  receive(jdbcServer)
      .message(JdbcMessage.closeStatement());<3>
  ----
  <1> Verify that the given callable statement has been created.
  <2> Verify that the statement has been executed with the parameter `1`.
  <3> Verify that the statement has been closed.
  
  As you might have noticed, callable statements and prepared statements have nearly the same workflow in Citrus. The only
  difference is the creation of the statement itself. It is also the case that the verification of
  `createCallableStatement` and `closeStatement` messages has to be activated via configuration. For more information,
  please have a look at the <<jdbc-server-configuration>> section.
  
  