In case of OpenSplice DDS, we support the full persistence-profile (even with our free community version) and also we don't rely on a (3rd-party) database to offer persistence. Our persistence-profile facilitates distributed and fault-tolerant persistence (that doesn't rely on a 'single-point-of-failure') in that multiple durability-services on mutiple hosts can maintain coherent persistence data-sets on their node's local storage. This is done completely transparent to applications, so no specific API is required to 'link' to any external database.
W.r.t. seamless integration with any DBMS-system, our enterprise-edition supports a pluggable connector (DBMSConnect) that allows transparent 2-way exchange between real-time DDS topic-data and near/non-realtime DBMS data. This is however not related nor depending on our implementation of the persistence-profile of DDS.
I can not comment on OpenDDS, but for OpenSplice DDS, we support any language combination of C, C++, Java and C# and w.r.t. platforms support Windows, Linux and Solaris with our community version and additionally all dedicated/embedded operating systems (and related hardware-architectures) in any of our commercial editions.
Please note also that the OpenSplice DDS community-version supports all DCPS-profiles (minimum-profile, content-subscription profile, persistence-profile, ownership-profile).