REGISTER or login:
A DATAQ is used to pass data between programs.
A MSGQ is used for messages. The system sends messages to QSYSOPR and other designated queues. When you submit a job, you can receive a message that your job has completed in your user or workstation message queue. A MSGQ queue can be used to pass data between programs but I have not seen that done much since the DATAQ came into existence.