I'm using MS DTC as a Transaction Manager for my application. Looking at the transaction list, there are many with the status
Only failed to notify
As you can see from the image below. What does it means?
This happens when Prepare-phase has finished and all Resource Managers voted to commit distributed transaction, however during Commit-phase MSDTC was not able to notify at least one of RM to perform commit operation.
Related
I am working on a MySQL database and my question is two fold related to each other,
Do we require a rollback if an error were to occur during a transaction, as it would only commit changes if it reached the last line of execution (which would be the commit statment), if not dosent it automatically rollback
If there needs to be required a rollback then I was wondering if there was any new way introduced or any workaround for catching 'ALL' exceptions, similar to SQL server where you try and catch error and if any error occurs you rollback
My main Concerns are power outage, as it is common where I live and if the electricity is cut to the server (which would be nothing but a database installed on a PC shared through adhoc / wifi connection, not a dedicated server) in between a transaction, then useful statements might not execute like logging in transaction
If a transaction is not committed, and any of the following happen, it will be rolled back:
Power loss on your PC
Reboot on your PC
MySQL Server process crashes or is killed
Client application exits without committing transaction. The MySQL Server will detect the client is gone, and abort that client's session. This rolls back a transaction if one was open. This also happens if the network connection between client and server is dropped.
I am trying to deploy a smart contract on the sawtooth network. While creating account with the command : It is getting a timeout.
seth account create --nonce=0 --wait myalias
Error: Problem submitting account creation transaction: Transaction was submitted, but client timed out before it was committed.
Can we increase the timeout or what can be the possible solution for the error?
This usually happens if you did not have --wait on the command line, so the client to wait for the commit response.
Another thing you can do is check that all the client services are running (listed in the docker-compose.yaml file if you are using Docker).
First, I'll start by telling that this question is a refinement of Mosquitto not propagating messages to AWS IoT using bridge configuration, so lots of context and logs could be found on that question too, but I decided to start a new one as I guess I found a real symptom of the actual problem, which I prefer to handle it alone to avoid confusion with other possible issues:
Mosquitto (/var/log/mosquitto/mosqutto.log) log files were actually disabled and, the only available logs where from /var/log/syslog but, when we enabled them, and issued a cat mosquitto.log|grep bridge, some relevant messages appeared:
1.- Bridge local.bridgeawsiot doing local SUBSCRIBE on topic #
Which tells that all topic are being bridged
2.- Connecting bridge awsiot (myEndpoint.iot.us-east-1.amazonaws.com:8883)
Which tells that it's using the correct endpoint
3.- Outgoing messages are being dropped for client local.bridgeawsiot.
Which worries me a lot, as I don't really know why is that happening, but seems like a clear symptom of the problem, but after a few searches I found:
"The message "Outgoing messages are being dropped" is shown when the internal message queue become full.", so I guess messages are just being enqueued but not actually being sent to AWS IoT.
So my questions are:
Why are these messages are being dropped?
If they are being dropped because queue is full, then why queued messages are not being sent to the bridged endpoint?
Relevant info:
Version: 1.4.14-0mosquitto1~jessie2
OS: Debian GNU/Linux 9.1 (stretch)
Not sure if we have the same issue but mine was resolved when I added into mosquitto.conf
max_queued_messages 0
From man mosquitto.conf
The maximum number of QoS 1 or 2 messages to hold in the queue (per client) above those messages that are currently in flight. Defaults to 100. Set to 0 for no maximum (not recommended). See also the queue_qos0_messages and max_queued_bytes options.
Reloaded on reload signal.
i am developing a distributed database middleware which intends to act as a proxy of MySQLs. When it comes to transactions across multiple MySQLs, i find it difficult to let multiple MySQLs commit or rollback as a whole. Here comes the case:
Say there are 2 mysql instances which are proxied by my database middleware, on the application side, when i want to perform a "prepare-commit" action on both mysql instances, Firstly, i send the "prepare" request to the middleware, and the middleware forwards the request to the 2 mysql instances, then i execute some sql through the middleware, finally, when i send the "commit" request to the middleware, the middleware will forwards the request to the 2 mysql instances, here is what confuses me:
if the "commit" request sent to the first mysql instance is successfully executed, while the "commit" request sent to the second instance somehow failed, as i know, if a transaction has been commited, it cannot be rollback, but this has caused the 2 mysql instances to be in an inconsistent state.
i am wondering how to deal with this problem, any help will be appreciated.
One is committed and one failed, coordinator should log the transaction changes, and return success to user. Once failed instance recover, retrieve log from the coordinator and make sure the consistency. Like the binlog inside of mysql as coordinator, your middleware should take the same responsibility.
MySQL external XA is also a example of distributed transaction which coordinator is client.
Spanner choose 2PC+Paxos to reduce the possibility of one node failure.
I have SQL Server 2008 R2, configured for log shipping. But backup, copy, restore are successful. But alert at primary and monitor instance say, out of sync error 14421.
I have schedule of 15 min set for all 3 jobs. and alert set for 3times=45 mins.
but I still get an error,
Please suggest what to do.
I would recommend carefully looking through the history for each of the Log Shipping jobs to see if you can find any errors. I have seen there be errors within the history message even though the overall job shows as having completed successfully. Hopefully, you'll find some indication as to why it's getting out of sync.
For more information, you can also right-click your SQL Server instance name -> Reports -> Standard Reports -> Transaction Log Shipping Status