Oil prices post gains, metal prices mixed