I'm not sure with this part of code. As documentation says:

```
The client can interrupt and cancel the current request by sending an Attention message. This is also known as out-of-band data, but any TDS packet that is currently being sent MUST be finished before sending the Attention message. After the client sends an Attention message, the client MUST read until it receives an Attention acknowledgment.
```

I believe that `message` method can be called multiple times here... once with currently sent TDS packet and once with Attention TDS packet. This is something I need to test to find out how does it work exactly.