Microsoft Message Queuing – MSMQ Nedir?

12 Haz

Microsoft Message Queuing ya da kısa adıyla MSMQ teknolojisi, aralarında sürekli bir bağlantı gerektirmeyen dağıtık sistemlerde uygulamaların emniyetli bir şekilde iletişim kurmalarını sağlayan bir protokoldür.

Dağıtık sistemlerde çalışan bir uygulama MSMQ üzerinde kuyruğa bir mesaj gönderir ve sıradaki işlemlerden kendi iç sürecini işletmeye devam eder. Sistemde bu mesaja ihtiyacı olan diğer bir uygulama bu kuyruğa giderek ilgili mesaj varsa alır ve kendi sürecini başlatır. Aşağıdaki resimde bu durum bir grafik üzerinde ifade edilmiştir.

MSMQ
MSMQ

Bu sayede birbirinden bağımsız çalışan iki ayrı sistem, birbirlerini beklemeden görevlerini yerine getirebilmektedir.

Örneğin bir web sitesi üzerinde yapılan işlemler sonrasında kullanıcı bilgilendirme amaçlı E-Posta gönderiliyor olsun. E-Posta gönderme işlemi ayrı bir mail sunucu üzerinden yapılacaktır. Kullanıcı, bir üyelik formunu doldurup gönderdikten sonra sürecin tamamlanmasını beklemeye başlar. Bu aşamada form bilgileri veri bankasına yazılır ve kullanıcıya bir bilgilendirme mesajı gönderilir. Ancak E-Posta sunucusu geç yanıt verirse veya arızalı durumda ise kullanıcının kayıt süreci yarım kalacaktır ve eksik bir işlem yapılmış olacaktır. Bunun sebebi web uygulamasının, ayrık bir sistem olan E-Posta sunucusuna bağımlı olmasıdır. Bu gibi durumları garanti altına alabilmek için kullanıcıya gönderilecek olan E-Posta bilgileri kayıt sürecinde MSMQ sistemi üzerinde kuyruğa eklenir. Bir başka uygulama bu kuyruğu kontrol ederek E-Posta gönderme işlemlerini gerçekleştirir. Yani iki ayrık sistem birbirinden izole hale getirilerek çalışma süreçleri birbirini etkilememiş olur.

MSMQ teknolojisinin kullanım amacı, dağıtık sistemlerde asenkron ve birbirinden bağımsız süreçler oluşturarak performans artışı sağlamaktır. Dağıtık sistemde çalışan bileşenlerden bir veya birkaçının devre dışı kalması durumunda sistemin iç süreçlerinin devam edebilmesi garanti altına alınabilmektedir. Ağa sürekli bağlı olmadan yürütülen işlemlerde sonuçlar sisteme mesaj şeklinde aktarılabilir ki buna sahada satış yapmak için kullanılan uygulamalar örnek verilebilir.

Kullanım alanları:

  • Kritik öneme sahip uygulamalar. Örneğin E-Ticaret, Bankacılık gibi.
  • İş akışlarının oluşturulduğu uygulamalar.
  • Gömülü sistemler.
  • Sahada satış, sipariş uygulamaları.

MSMQ teknolojisi işletim sistemi üzerinde Windows özelliği olarak gelmektedir. İsteğe bağlı açılabilen bir özelliktir. Kişisel bilgisayar ve sunucu işletim sistemlerine göre birçok versiyona sahiptir.  Aşağıdaki listede işletim sistemi türlerine göre MSMQ versiyonlarının gelişimi sunulmuştur.

MSMQ Versiyonları:

  • MSMQ 1.0, Microsoft Windows NT, Windows 95, 98 sürümleri üzerinde çalışan versiyondu.
  • MSMQ 2.0, Microsoft Windows 2000 üzerinde çalışan versiyon.
  • MSMQ 3.0, Microsoft Windows XP Professional ve Server 2003 ailesi üzerinde çalışan versiyondur.
  • MSMQ 4.0 Windows Vista ve Windows Server 2008 üzerinde çalışır.
  • MSMQ 5.0 Windows 7 ve Windows Server 2008 R2 üzerinde çalışır.
  • MSMQ 6.0 Windows 8 ve Windows Server 2012 üzerinde çalışır.
  • MSMQ 6.3 Windows Server 2012 R2 üzerinde çalışır.

Windows 7 veya Windows 8 gibi kişisel işletim sistemlerinde MSMQ özelliğinin açılması Denetim Masası -> Programlar ve Özellikleri -> Windows Özelliklerini Aç veya Kapat linkinden açılan pencereden yapılmaktadır.

Windows 8 MSMQ
Windows 8 MSMQ

Windows 2008 veya 2012 gibi sunucu işletim sistemlerinde ise Server Manager -> Features -> Add Feature linkinden açılan pencereden seçerek yapabiliriz.

Windows 2008
Windows 2008

MSMQ özelliği işletim sistemine eklendikten sonra Bilgisayar Yönetimi menüsünden görüntülenebilmektedir.

MSMQ
MSMQ

Bir sonraki yazıda görüşmek üzere.

Kaynak: https://msdn.microsoft.com/en-us/library/ms711472(v=vs.85).aspx

Windows 8.1 Update Sonrası VMware Network Sorunu

8 Mar

Bu yazıda beni saatlerce uğraştıran bir VMware network sorundan bahsetmek istiyorum. Linux ile ilgili  çalışmalarımı yapmak üzere Windows 8 yüklü makinemde VMware üzerinde Ubuntu işletim sistemini kurmuştum. Bir gün, windows 8 için güncelleme uyarısını aldım ve 8.1 dahil olmak üzere bütün güncelleştirmeleri yükledim. Aradan bir kaç gün geçti ve Linux üzerinde bir deneme yapmam gerekti. Sanal makineye çalıştırdığımda bir de ne göreyim, ağ bağlantısı sağlanamıyor uyarısı! Sanal makine ayarlarından Network Adapter sekmesindeki ayarlar aynı duruyor fakat ağ bağlantısı bir türlü sağlanmıyordu.

Virtual Mechine Settings
Virtual Mechine Settings

Windows ağ bağlantı ayarlarında da bir anormallik olmadığını gördüm. Sanal makine ayarlarında denemedik varyasyon bırakmadım fakat nafile. Bir türlü sorunu gideremedim. En sonunda VMware ana penceresinden Edit > Virtual Network Editor penceresi gözüme çarptı.

Virtual Network Editor
Virtual Network Editor

Bu pencerede VMnet1 ve VMnet8 tanımlanmış durumdaydı. Ancak VMnet0 Bridge Type tanımlı değildi. Pencerenin en altında bulunan Restore Default düğmesine tıkladım ve devam ettim. İşlem tamamlandığında Virtual Network Editor penceresi aşağıdaki gibi oldu.

Virtual Network Editor
Virtual Network Editor

Yeniden sanal işletim sistemini çalıştırdığımda ağ bağlantı sorunundan kurtulduğumu gördüm. İnternet bağlantısını başarılı bir şekilde sağlamıştım.

Bu sorunu Windows 8.1 update ile ilişkilendirmemin sebebi, diğer iki bilgisayarda da windows 8.1 update sonrası aynı sorunu yaşamış olmamdı. Windows 8.1 kurduktan sonda VMware kurulumu yapanlar böyle bir sorun yaşamayacaktır. Tekrar hatırlatmalıyım ki bu sorun VMware kurulu makinede 8.1 güncellemesi yaptıktan sonra oluştu.

Umarım faydası dokunur.

Windows mu Linux mu?

17 Eyl

İşletim sistemlerine karşı fanatizm boyutunda bir taraf tutma savaşı vardır. Linux taraftarları ve Windows taraftarları topluluklarda ve sosyal medyada kısır tartışma içerisindedir genelde. Bu tür tartışmalara girmeden önce, işletim sistemlerinin neyi hedeflediğini bilmemiz gerekmektedir. Amacımıza uygun işletim sistemini seçebiliyor muyuz diye bir bakmamız gerekir ilk önce. Fakat amaca uygun işletim sistemi nasıl seçilir? Hangi tarafta durmamız gerektiğini nasıl belirlemeliyiz?

Microsoft firmasının Windows işletim sistemini çıkarma amacı ve inancı, gelecekte her evde bir kişisel bilgisayar olmasıydı. Her evde bir bilgisayarın olması demek bir de işletim sisteminin olması demektir. Windows işletim siteminin ev kullanıcılarına dönük yani profesyonellik istemeyen bir ilkesi vardır. Yani herkesin kullanabileceği bir işletim sistemidir Windows. Amacına uygun şekilde yapılmış mı? Bence evet. Öyle olmasaydı çoğunluk Windows işletim sistemini kullanmazdı. Çoğunluğun Windows kullanması belki başka seçeneğin olmamasından kaynaklanıyor diye akıllara gelebilir ama günümüzde başka işletim sistemlerinin de olması Windows işletim sistemini kenara attıramamıştır.

Gelelim Linux tarafına. Linux işletim sistemi, ev kullanıcısından ziyade daha profesyonel kullanıcılara hitap eden bir işletim sistemidir. Linux, kullanıcıya her şeyi hazır olarak sunmaz. Daha fazla bilgi ve emek ister. Programlar kapalı kutular şeklinde değil açık kaynak şeklindedir. Bilgili ve profesyonel olmadan her şey açık kaynak, her şey özgür sloganlarıyla Linux kullanmaya kalkan acemi kullanıcılar, bir ekran kartı sürücüsünü 1 günde yükleyemeyince hayal kırıklığı yaşayabiliyor.

Profesyonel olmak kişinin özgür seçimidir. Bilgisayar sistemleri konusunda belli bir noktaya gelenler ve işletim sistemi çekirdeği seviyesinde çalışma becerisine sahip olan kullanıcılar gayet tabi Linux işletim sistemini seçebilir. Bilgisayar mühendisleri, gömülü istemlere yazılım üretenler için açık kaynak ve Linux biçilmiş kaftandır diyebilirim. Ancak ev kullanıcıları, işletim sistemi seviyesinde çalışacak yazılımlar üretmek isteyenler ve kolayca yazılım üretip kullanmak isteyenler için de Windows kullanmak avantajlı olur diyebilirim.

Linux tarafında duranlar da genelde önce Windows işletim sistemini kullanıp sonra Linux tarafına geçenlerdir. Kabul etmeliyiz ki Windows işletim sistemi olmasaydı çoğumuz bilgisayar sistemlerini geç tanırdık ve birçok kullanıcı da hala bilgisayar kullanamıyor olurdu. Bilgisayarlar şirketlere ve geliri üst seviyede olan insanlara has ürünler olurdu. Ev kullanıcısına ulaşması çok daha uzun seneler alabilirdi. Bu nokta da insanlığı Windows işletim sistemiyle tanıştıran Microsoft firmasının hakkını yememek gerek.

Şeçim sizin…

Windows 7 ve IIS 7 Üzerinde SSL Sertifika Oluşturma

28 Tem

Güvenli web sayfaların olmazssa olmazı olan SSL sertifikalarının oluşturulma isteği ve bu istek sonrasında oluşturulan sertifikanın sistemimize kaydını inceleyelim.

Bir SSL sertifika satın almaya karar verdiğimizde önce, satın alacağımız sertifika için bir istek oluşturmamız gerekmektedir. Bu işlemi IIS 7 üzerinden gerçekleştirmek oldukça basittir. IIS penceresinden Bağlantılar panelinden Server’a tıklayıp, Sunucu Sertifikalarına tıklıyoruz. Açılan pencerede, sağ panelde Eylemler bölmesinde Sertifika İsteği Oluştur seçeneğini seçtiğimizde aşağıdaki sihirbaz karşımıza çıkacak.

Bu form sertifikamıza ait bilgileri içermektedir.

Şifreleme hizmet sağlayıcısı özelliklerinden bit uzunluğunu 2048 olarak seçerek devam ediyoruz.

Şimdi sertifika isteğimizin oluşturulacağı bir txt dosya belirliyoruz.

İşlem sonlandırıldıktan sonra oluşan dosya aşağıdaki şekildedir. İçeriğini anlamamıza gerek yok zaten. Çünkü bu dosyayı, sertifika satın alacağımız yere göndererek, bu isteğe göre bir sertifika oluşturtmuş olacağız.

Ben deneme için COMODO üzerinden deneme amaçlı bir sertifika oluşturmuştum. Üyelik v.s. işlemlerinin ardından yukarıdaki CertRequest.txt dosyasını upload ettim ve  sertifika dosyam oluşturulup hemen mail adresime atıldı.

Artık oluşturulan deneme sertifikanın sunucuya yüklenme işlemi var sırada.

Bu işlemi de IIS üzerinden Sunucu Sertifikaları‘nı tıklayarak sağ taraftaki Eylemler penceresinden bu kez de Sertifika İsteğini Tamamla seçeneğini seçiyoruz. Yukarıda Sertifika İsteği Oluştur demiştik.

Açılan pencerede şu şekildedir:

Bu şeklide sertifika isteğinin yanıtını da eklemiş bulunuyoruz. Artık sertifika yükleme işlemi tamamlanmıştır.

Şu andan itibaren bu sertifikayı, https gerektiren sayfalarda veya güvenli veri aktarımı gerektiren WCF servislerinde kullanabiliriz.

Sunucunun gelen requestlere tepkisi

19 Tem

Web sunucunuza peş peşe gelen gelen requestler karşısında işlemci (CPU) ve belleğinizin (RAM) tepkisi nasıl olur diye düşündünüz mü?

Ben bunu gerçekten merak ediyordum. Sonucu görmek için test sunucumu, C# ile yazdığım bir bot yardımıyla request yağmuruna tuttum.

Acaba RAM mi daha fazla yorulur CPU mu sorusunun cevabını bulmak üzereydim. Tabi sonuç tüm sunucular için aynı olmayabilir. Çünkü istek gönderilen sayfaların veritabanını kullandığı, diskler arama yaptığı, bellek gerektirecek işlemler yaptığı göz önünde bulundurulmalıdır.

Benim aldığım sonuç şu şekildeydi.

Bellekte neredeyse hiç bir tepki olmazken CPU %80 – %90 gibi seviyelere ulaştı.

Sql Server Error Code 2337

14 Tem

Sanal  makinede oluşturulmuş Windows Server 2003 üzerinde SQL Server 2008 R2 yükleme işlemi sırasında karşılaşılan bir sorundan bahsetemk istiyorum. Sanal makineye SQL Server 2008 R2 sürümünü de Volume olarak ekleyip, bu sanal disk üzerinden kurulum yapmaya çalıştığımda, kurulum sonuna doğru bir hata ile karşılaştım.

Hata şu şekildeydi:

Microsoft SQL Server 2008 Setup
The following error has occurred:
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2337.

Hemen ardından gelen pencerede ise, yükleme durumu hakkınad şu şekilde olumsuz bir rapor verilmiştir.

Tam da belayı bulduk dediğim kısım işte burasıdır. Kurulum hatayla sonuçlanmıştır.

Kurulum log dosyasını incelediğimde şu şekilde bir rapor vardı karşımda.

Overall summary:
Final result: SQL Server installation failed. To continue, investigate the reason for the failure, correct the problem, uninstall SQL Server, and then rerun SQL Server Setup.
Exit code (Decimal): -2068643839
Exit facility code: 1203
Exit error code: 1
Exit message: SQL Server installation failed. To continue, investigate the reason for the failure, correct the problem, uninstall SQL Server, and then rerun SQL Server Setup.
Start time: 2011-06-07 11:16:15
End time: 2011-06-07 12:03:35

Sorunun çözümüyle alakalı olarak uzmanların görüşlerinden biri, Sanal sürücü üzerinden değil, fiziksel sürücü üzerinden kurulumun yapılması yönündedir.

Ancak ben sorunun çözümü olarak SQL Server 2008 R2 yerine SQL Server 2008 (R2 olmayan) sürümünü yine sanal sürücü üzerinden kurmayı denedim ve sonuç alabildim.

Login failed for user ‘IIS APPPOOL\DefaultAppPool Hatasi

12 Tem

Uygulamalarınızı hazırlayıp IIS üzerinde çalıştırmaya hazırlanırken birden bir hatayla karşılaşırsınız.

Hata : Login failed for user ‘IIS APPPOOL\DefaultAppPool’. şeklindeyse çözüm gayet basit. Aslında çözümün nasıl olduğunu öğrendikten sonra “gayet basit” diyebiliyorum. Normalde benim de canımı sıkmıştı bu hata.

Neyse, çözüm için IIS’i çalıştırıp aşağıdaki resimde görüldüğü gibi DefaultAppPool ayarlarını LocalSystem olarak ayarladığımızda olay tamamdır.

Windows Live Hotmail için Outlook 2007 Ayarları

21 Ağu

Microsoft’un Hotmail için POP3 desteği vermesinden sonra Office Outlook ortamından maillere erişip yönetmek mümkün hale geldi. Windows Live hesabı olan arkadaşlar hesaplarına Outlook ortamından erişebilmek için aşağıdaki yöntemi izleyebilirler. Bu ayarları test edip ayarların çalıştığını gördükten sonra paylaşıyorum. Bilgisayarımda yüklü office sürümünün dili ingilizce olduğu için resimlerde ingilizce ayarlar görünüyor olacaktır.

Ayarlar

  1. Outlook penceresinden Araçlar (Tools)Hesap Ayarları (Account Settings) seçilir.
  2. Yeni (New) butonuna tıklayarak Yeni E-posta Hesabı Ekle (Add New E-Mail Account) penceresi açılır. Açılan pencerede “Microsoft Exchange, POP3, IMAP ve HTTP” seçeneği işeretlenerek ilerlenir.
  3. Gelen pencerede alt köşede “Sunucu ayarlarını veya ek sunucu türlerini el ile yapılandır” (Manually configure server settings or additional server types)seçeneği işeretlenerek ilerlenir.
  4. Gelen pencerede “Internet E-Posta” (Internet E-Mail) seçeneğini seçip ilerlenir.
  5. Bu yeni pencerede gerekli bilgilerin girilmesi gerekiyor.

  • Adınız (Your Name): Adınız ve soyadınız ( Bu alan mail gönderdiğinizde gönderdiğiniz kişinin mail kutusunda kimden kısmında yazacak olan bilgidir.)
  • E-Posta Adresi (E-Mail Adress): sample@hotmail.com veya sample@windowslive.com (Windows Live Hotmail adresiniz)
  • Hesap Türü (Account Type): POP3 seçilir.
  • Gelen Posta Sunucusu (Incoming mail server): pop3.live.com
  • Giden Posta Sunucusu (Outgoing mail server SMTP): smtp.live.com
  • Kullanıcı Adı (User Name): genelde mail adresidir. sample@hotmail.com gibi
  • Parola (Password): Mail şifresiniz.
  • Parolamı Anımsa (Remember password): işaretlenir. İşaretlenmezse her Outlook açıldığında size parola soracaktır.
  • Güvenli Parola kimlik doğrulaması kullanarak durum açılsın (Require logon using Secure Password Authentication SPA) işaretlenir.

 

  1. Bilgiler eksiksiz girildikten sonra Diğer Ayarlar (More Options) butonu tıklanarak Internet E-Posta Ayarları (Internet E-Mail Settings) penceresi açılır.
  2. Genel (General) sekmesinde kişisel ayarlar vardır ve isteğe bağlı doldurulabilir.
  3. Giden sunucu (Outgoing server) sekmesinde Giden sunucum (SMTP) için kimlik doğrulaması gerekiyor (My outgoing server (SMTP) requires authentication) seçeneği işeretlenir.
  4. Bağlantı (Connection) sekmesinde bir değişiklik yapmaya gerek yok.
  5. Gelişmiş (Advenced) sekmesinde  Gelen sunucu (POP3) (Incoming Server POP3) port değeri 995 olarak girilir. Bu sunucu şifreli bir bağlantı gerektirir (This server requires an encrypted connection SSL) Kutucuğu işaretlenir. Giden sunucu SMTP (Outgoing server SMTP) port değeri olarak 587 girilir. Aşağıdaki şifreli bağlantı türünü kullan (Use The following type of encrypted connection) listesinden TLS seçilir. Ardından Tamam butonuna tıklanır.
  6. Artık bütün ayarlar yapılmış durumda ve Hesap ayarlarını sına (Test Account Settings) Butonuna tıklayarak testin başarılı bir şekilde gerçekleşmesi beklenir.

Sonraki pencerede Son (Finish) butonu tıklanarak mail adresindeki verilerin indirilmesi işlemi başlar.

Bir sonraki yazıda görüşmek üzere.

Windows 7 IIS 7 yükleme sorunu

5 Ağu

Merhaba arkadaşlar,

     Bugünlerde beni sıkıntıya sokan bir durumu ve bu sorunun çözümünü paylaşmak istiyorum.  Windows 7 Proffessional sürümü üzerinde IIS7 yüklemeye karar verdim. Denetim masası (Control Panel) > Programlar ve özellikleri (Programs and Features) yolunu takip ederek Windows özelliklerini aç veya kapat linkini tıkladım ve açılan pencerede Internet Information Services düğümünü açarak IIS’in çalışması için gerekli seçimleri yaptım ve Tamam butonuna tıkladığımda birde ne göreyim! Aşağıdaki hata penceresi aniden karşıma dikildi.

 

Hata mesajı “Bir hata oluştu. özelliklerin tümü başarıyla değiştirilemedi” ( An error has occurred. Not all of the features were successfully changed ) şeklindeydi. Hatayı yok edebilmek için çeşitli varyasyonlar denedim ama nafile. Hiçbir sonuç alamamıştım. Son çare olarak windows service packs 1 yüklemesini yapmak ve sonuç alamdığım taktirde ise sistemi yeniden kurmayı göze almıştım. Service pack yüklemesini başarılı bir şekilde bitrdim. Yüklemenin biraz uzun sürdüğünü söylemeden geçemeyeceğim. Sistemi yeniden başlattım ve aynı yolları izleyerek IIS 7’yi yüklemek için seçimleri yapıp Tamam(OK) butonuna bastım ve gözümü kapattım. Evet o gıcık gonk sesini duymamıştım ve yükleme başarıl bir şekilde tamamlanmıştı.

Aynı hatayla karşılaşan arkadaşlar için sorunun çözümlerinden biri service packs 1 yüklemektir.