private void RaiseErrorEvent(string info, string message, UserErrorType type, SqlConnection conn) { // Raise a custom event. Both SqlTrace and Extended Events can capture this event. string sql = "EXEC sp_trace_generateevent @eventid = @eventid, @userinfo = @userinfo, @userdata = @userdata;"; try { using (SqlCommand cmd = new SqlCommand(sql)) { cmd.Connection = conn; cmd.Parameters.Add(new SqlParameter("@eventid", System.Data.SqlDbType.Int) { Value = type }); cmd.Parameters.Add(new SqlParameter("@userinfo", System.Data.SqlDbType.NVarChar, 128) { Value = info }); cmd.Parameters.Add(new SqlParameter("@userdata", System.Data.SqlDbType.VarBinary, 8000) { Value = Encoding.Unicode.GetBytes(message.Substring(0, message.Length > 8000 ? 8000 : message.Length)) }); cmd.ExecuteNonQuery(); } } catch (Exception ex) { logger.Warn($"Worker[{Name}] - Unable to raise error event. Message: " + ex.Message); } }
private void RaiseErrorEvent(string info, string message, UserErrorType type, SqlConnection conn) { // Raise a custom event. Both SqlTrace and Extended Events can capture this event. string sql = "EXEC sp_trace_generateevent @eventid = @eventid, @userinfo = @userinfo, @userdata = @userdata;"; using (SqlCommand cmd = new SqlCommand(sql)) { cmd.Connection = conn; cmd.Parameters.AddWithValue("@eventid", type); cmd.Parameters.AddWithValue("@userinfo", info); cmd.Parameters.AddWithValue("@userdata", Encoding.Unicode.GetBytes(message.Substring(0, message.Length > 8000 ? 8000 : message.Length))); cmd.ExecuteNonQuery(); } }