Archive

Archive for March, 2010

Reading NSB Message Content

March 10, 2010 2 comments

Jika terjadi exception pada handler dari NServiceBus maka proses tersebut akan di eksekusi sebanyak 5 kali secara default. Dan jika tidak juga berhasil ditangani maka message tersebut akan dipindahkan ke error queue. Kemudian exception yg ada tersebut akan di log oleh log4net.

Sehingga system administrator akan membaca log tersebut untuk mengetahui penanganan kesalahan dan setelah perbaikan mengembalikan message yg ada di error queue tersebut ke queue semula.

Penanganan tersebut dijelaskan pada Dokumentasi NServiceBus pada bagian http://www.nservicebus.com/Documentation.aspx
Read more…

Advertisement

Innermost Exception

March 10, 2010 Leave a comment

seringkali exception yg kita tangkap tidak benar2 bisa menjelaskan apa yg harus dilakukan untuk mengatasi masalah tersebut. Karena pesan error yg dikeluarkan tidak jelas.

Saya melihat implementasi NServiceBus dimana exception yg di log oleh log4net jelas sekali tujuannya. Exception yg diambil adalah pesan yg terdalam dari exception tersebut.

Code dari NSB tersebut saya jadikan sebagai extensions method untuk Exception.

public static class ExceptionExtensions
    {
        public static Exception GetInnermostException(this Exception e)
        {
            var result = e;
            while (result.InnerException != null)
                result = result.InnerException;

            return result;
        }
    }

ResultSet to Object Mapper

March 10, 2010 1 comment

sebenarnya klo di NHibernate ada subselect seperti di java gak bakalan buat yg ginian sih.

kemaren pas kerja dengan Java aku ada belajar bahwa sql query result dapat langsung di map ke object. kira2 mappingnya seperti ini.

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Welly.Exp.NHSubselect.ViewModel" namespace="Welly.Exp.NHSubselect.ViewModel">
  <class name="StockCardSnapshot" lazy="false">
    <subselect>
      select sc.scid, sc.partid, prt.prtname, prc.prcid, prc.prcname, prt.prtgroupid, prg.prgname, loc.locationid, loc.locname, sc.scavailable, sc.scbookingstock, sc.scbalance, uom.uomname
      from tblstockcard sc inner join
      tblpart prt on sc.partid = prt.partid inner join
      .......
    </subselect>
    <synchronize table="tblstockcard"/>
    <synchronize table="tblpart"/>
    .....
    
    <id name="ID" column="scid"/>
    <property name="Part" column="partid" type="String"/>
    <property name="Principal" column="prcname" type="String"/>
    ...
  </class>
</hibernate-mapping>

tapi aku coba jalanin di .NET. katanya subselect gak dikenalin di xml parser nya. Beh. Sial.
Read more…

Categories: .NET Tags: , , ,