/// <summary> /// Publish a partitionable message /// </summary> /// <param name="message">IPartitionable</param> public void Publish(IPartitionable message) { Logger.Info("PPC gateway Message :" ); Logger.Info(message.SerializeToXML()); producer.Publish(message, messagingSystem, messagingEnvironment, messagingModuleName, MESSAGING_CONTEXT); }
private void ClonePartitionDescriptor(IPartitionable newObject, IPartitionable oldObject) { var oldPartitionDescriptor = oldObject.PartitionDescriptor; if (oldPartitionDescriptor == null) { return; } var column = GetPartitionColumn(newObject, oldPartitionDescriptor); var partitionDescriptor = new PartitionDescriptor(newObject, column, oldPartitionDescriptor.PartitionMethod); CopyDbName(partitionDescriptor, oldPartitionDescriptor); foreach (var oldPartition in oldPartitionDescriptor.Partitions) { ClonePartition(partitionDescriptor, oldPartition); } newObject.PartitionDescriptor = partitionDescriptor; }
private TableColumn GetPartitionColumn(IPartitionable newObject, PartitionDescriptor oldPartitionDescriptor) { var table = newObject as Table; if (table != null) { return(table.TableColumns[oldPartitionDescriptor.Column.Name]); } var index = newObject as Index; if (index != null) { var tableColumn = index.Columns[oldPartitionDescriptor.Column.Name].Column as TableColumn; if (tableColumn != null) { return(tableColumn); } throw new InvalidOperationException(Strings.ExUnableToGetTableColumnInstanceFromIndex); } throw new ArgumentOutOfRangeException("newObject", Strings.ExUnexpectedTypeOfParameter); }
/// <summary> /// Initializes a new instance of the <see cref="PartitionDescriptor"/> class. /// </summary> /// <param name="owner">The owner.</param> /// <param name="column">The column.</param> /// <param name="partitionMethod">The partition method.</param> public PartitionDescriptor(IPartitionable owner, TableColumn column, PartitionMethod partitionMethod) : this(owner, column) { this.partitionMethod = partitionMethod; }
/// <summary> /// Initializes a new instance of the <see cref="PartitionDescriptor"/> class. /// </summary> /// <param name="owner">The owner.</param> /// <param name="column">The column.</param> /// <param name="partitionMethod">The partition method.</param> /// <param name="partitionAmount">The partition amount.</param> public PartitionDescriptor(IPartitionable owner, TableColumn column, PartitionMethod partitionMethod, int partitionAmount) : this(owner, column) { this.partitionAmount = partitionAmount; this.partitionMethod = partitionMethod; }
/// <summary> /// Initializes a new instance of the <see cref="PartitionDescriptor"/> class. /// </summary> /// <param name="owner">The owner.</param> /// <param name="column">The column.</param> /// <param name="partitionSchema">The partition schema.</param> public PartitionDescriptor(IPartitionable owner, TableColumn column, PartitionSchema partitionSchema) : this(owner, column) { this.partitionSchema = partitionSchema; }
private PartitionDescriptor(IPartitionable owner, TableColumn column) { this.owner = owner; Column = column; partitions = new PairedNodeCollection <PartitionDescriptor, Partition>(this, "Partitions"); }